计算字符串/列表中的字符串值(FOR循环)

时间:2013-04-29 05:22:33

标签: python python-2.7 python-3.x

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

问题

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

注意:我知道这个问题会询问字符串中出现的次数,但我决定使用列表。

我尝试回答

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中有多少个的表示。

感谢您的时间。

4 个答案:

答案 0 :(得分:3)

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


>>> count
2

答案 1 :(得分:3)

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

for each_char in drink:
    if each_char == letter:
        print char,

答案 2 :(得分:0)

您可以在单行列表中理解它。

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

你的for循环没有按预期方式工作的原因是letter中的for letter in drink变量不等于'a'。 for循环接受item变量和sequence变量的参数。 letter是项目,drink是序列。因此,drink中的每个项目都会按照您指定的变量letter给出,一次一个,从第一个索引开始。

答案 3 :(得分: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会自动将字符串视为字符列表,因此无需提前创建特殊列表。