3 回答

TA贡献1796条经验 获得超4个赞
如果您只处理零和一,那么@davedwards 是一个很好的解决方案。计算'1'
每个字符串中的实例。
out = [x.count('1') for x in population]
如果您需要将解决方案更可扩展到 0 和 1 以外的值,您可以将每个数字转换为 int 并对整数求和。
out = [sum(map(int, x)) for x in population]

TA贡献1818条经验 获得超11个赞
使用collections.Counter():
>>> from collections import Counter
>>> population = ['10001','11111','11010','110001']
>>> [Counter(x).get('1', 0) for x in population]
[2, 5, 3, 3]
一种功能方法是还使用map()和operator.itemgetter():
>>> from collections import Counter
>>> from operator import itemgetter
>>> list(map(itemgetter('1'), map(Counter, population)))
[2, 5, 3, 3]

TA贡献1821条经验 获得超4个赞
一种可能的方法是遍历population列表并使用str.count('character')计算'1'每个“数字”字符串中的 ':
evaluation = list(item.count('1') for item in population)
evaluation 将包含所需的计数:
>>> print(evaluation)
[2, 5, 3, 3]
添加回答
举报