0

我正在尝试计算给定 x 列表中的“a”,但这段代码是错误的,我不知道为什么

x = ['a', 'b', 'a']

def a_count(x):
    n = 0
    for ltr in x:
        if ltr == 'a':
            n = n + 1
        else :
            n = n
        return n
    return 

如果有人能告诉我如何从用户设置值的另一个列表中计算“a”,我也将不胜感激。这可以通过设置一个空列表来完成

y = []

接着?

4

4 回答 4

3

您返回得太早了,通过更改最后几行该功能可以正常工作

x = ['a', 'b', 'a']

def a_count(x):
    n = 0
    for ltr in x:
        if ltr == 'a':
            n = n + 1
    return n 

>>> a_count(x)
2

你可以像这样更简洁地做到这一点:

>>> sum(elem == 'a' for elem in x)
2

上面的代码只是简单地添加了0s 和1s(forreach 元素的结果)来得到selem == 'a'的总数'a'

于 2013-06-07T03:27:01.313 回答
3
>>> x = ['a', 'b', 'a']
>>> x.count('a')
2
于 2013-06-07T03:42:15.257 回答
0
x = ['a', 'b', 'a']

def a_count(x):
    n = 0
    for ltr in x:
        if ltr == 'a':
            n = n + 1
    return n
于 2013-06-07T03:27:29.150 回答
0

这是一种可能会派上用场的方法:

from collections import Counter

x = ['a', 'b', 'a']
Counter(x)['a']

这将使用内置的 Collection 计数器来计算所有唯一值。然后访问计数a

于 2013-06-07T03:30:07.993 回答