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條經驗 獲得超5個贊
一種可能的方法是遍歷population列表并使用str.count('character')計算'1'每個“數字”字符串中的 ':
evaluation = list(item.count('1') for item in population)
evaluation 將包含所需的計數:
>>> print(evaluation)
[2, 5, 3, 3]
添加回答
舉報