如何在 Python 的另一个列表中制作一个总和数字列表?

例如,有没有办法轻松地将列表中的数字转换为个位数


population = ['10001','11111','11010','110001']


into ['1','0','0','0','1'] 


add each digit in each set and put it in another list like 

this


evaluation = [2,5,3,3] (adding up all the 1's up on the first list)

我对 Python 很陌生,所以我不确定我是否正确地做这件事


UYOU
浏览 177回答 3
3回答

SMILET

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

慕尼黑8549860

使用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]

收到一只叮咚

一种可能的方法是遍历population列表并使用str.count('character')计算'1'每个“数字”字符串中的 ':evaluation = list(item.count('1') for item in population)evaluation 将包含所需的计数:>>> print(evaluation)[2, 5, 3, 3]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python