为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

UYOU 2021-09-11 13:28:55
例如,有没有办法轻松地将列表中的数字转换为个位数population = ['10001','11111','11010','110001']into ['1','0','0','0','1'] add each digit in each set and put it in another list like thisevaluation = [2,5,3,3] (adding up all the 1's up on the first list)我对 Python 很陌生,所以我不确定我是否正确地做这件事
查看完整描述

3 回答

?
SMILET

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]


查看完整回答
反对 回复 2021-09-11
?
慕尼黑8549860

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]


查看完整回答
反对 回复 2021-09-11
?
收到一只叮咚

TA贡献1821条经验 获得超4个赞


一种可能的方法是遍历population列表并使用str.count('character')计算'1'每个“数字”字符串中的 ':


evaluation = list(item.count('1') for item in population)

evaluation 将包含所需的计数:


>>> print(evaluation)

[2, 5, 3, 3]


查看完整回答
反对 回复 2021-09-11
  • 3 回答
  • 0 关注
  • 176 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号