【问题标题】:Count amount of specific values in list?计算列表中特定值的数量?
【发布时间】:2013-06-07 03:23:56
【问题描述】:
我正在尝试计算给定 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 = []
然后……然后呢?
【问题讨论】:
标签:
python
list
python-3.x
【解决方案1】:
您返回得太早了,通过更改最后几行函数可以正常工作
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(elem == 'a' 的到达元素的结果)相加得到'a's 的总数
【解决方案2】:
>>> x = ['a', 'b', 'a']
>>> x.count('a')
2
【解决方案3】:
x = ['a', 'b', 'a']
def a_count(x):
n = 0
for ltr in x:
if ltr == 'a':
n = n + 1
return n
【解决方案4】:
这是一种可能会派上用场的方法:
from collections import Counter
x = ['a', 'b', 'a']
Counter(x)['a']
这将使用内置的 Collection 计数器来计算所有唯一值。然后访问a的计数