1

我已经对我的问题的解决方案进行了广泛的搜索,但是我做得很短,主要是因为没有使用我需要的条件的循环示例。

问题

使用 for 循环计算字母 'a' 在字符串 'fanta' 中出现的次数。使用 Python 的名为 count() 的字符串方法检查您的答案。

注意:我知道这个问题询问 a 在字符串中出现了多少次,但我决定使用 list。

我对答案的尝试

drink = ["f","a","n","t","a"]
letter = "a"

for letter in drink:
    print (letter)

显然fanta中有两个A但是我使用内置的计数功能来验证

count = drink.count('a')
print(count)

事实上,芬达有两个 A :D

通过以下思路;for 循环将在饮料列表中查找字母“a”,并打印出来

a
a

或类似的东西,但我只是得到;

f
a
n
t
a

我猜是因为 for 循环不理解我只希望它检查列表中的字符串字母。

我想知道

如何获得所需的结果以某种方式形成或形成 for 循环,以显示 fanta 中有多少 a 的表示。

谢谢你的时间。

4

4 回答 4

3
>>> drink = ["f","a","n","t","a"]
>>> count = 0
>>> for c in drink:
        if c == 'a':
            count += 1


>>> count
2
于 2013-04-29T05:24:26.767 回答
3
drink = ["f","a","n","t","a"]
letter = "a"

for each_char in drink:
    if each_char == letter:
        print char,
于 2013-04-29T05:32:06.203 回答
0

您可以在单行列表理解中做到这一点。

len([letter for letter in drink if letter == 'a'])

您的 for 循环未按您预期的方式工作的原因是letter变量 infor letter in drink不等于“a”。for 循环接受 item 变量和 sequence 变量的参数。 letter是项目,drink是序列。因此,从第一个索引开始,一次一个地为每个项目提供您指定drink的变量。letter

于 2013-04-29T05:24:31.690 回答
0

解决此问题的正确方法是尽可能以最简单最直接的方式进行。

>>> s = 'fanta'
>>> s.count('a')
2

但是,如果您坚持使用列表,则计算列表中项目的正确方法是使用counter模块。

>>> from collections import Counter
>>> Counter('fanta')
Counter({'a': 2, 'n': 1, 't': 1, 'f': 1})
>>> Counter('fanta')['a']
2

注意:Python 自动将字符串视为字符列表,因此无需提前创建特殊列表。

于 2013-04-29T10:36:10.223 回答