如何在嵌套的Python列表中添加数字
我有一张单子如何在嵌套的Python列表中添加数字,python,nested-lists,Python,Nested Lists,我有一张单子 [["Sunday", 7, 0], ["Sunday", 2, 0], ["Monday", 1, 5], ["Tuesday", 5, 0], ["Thursday", 2, 0], ["Friday", 3, 0], ["Friday", 1, 0], ["Saturday", 4, 0], ["Monday", 8, 0], ["Monday", 1, 0], ["Tuesday", 1, 0], ["Tuesday", 2, 0], ["Wednesday", 0, 5]
[["Sunday", 7, 0], ["Sunday", 2, 0], ["Monday", 1, 5], ["Tuesday", 5, 0], ["Thursday", 2, 0], ["Friday", 3, 0], ["Friday", 1, 0], ["Saturday", 4, 0], ["Monday", 8, 0], ["Monday", 1, 0], ["Tuesday", 1, 0], ["Tuesday", 2, 0], ["Wednesday", 0, 5]]
我可以在列表中添加值以获得如下的总和吗
["I dont need this value", 37, 10]
这正是其目的:
In [4]: reduce(lambda x,y:['',x[1]+y[1],x[2]+y[2]], l)
Out[4]: ['', 37, 10]
其中l
是您的列表
这只会遍历列表一次,自然会产生不同的——可能更复杂的——表达式来计算这三个术语。我将列表分配给
l
:
l = [ your list .... ]
['dont needed', sum( [ x[1] for x in l ] ), sum( [x[2] for x in l ] ) ]
结果:
['dont needed', 37, 10]
当然,最终:
>>> stuff=[["Sunday", 7, 0], ["Sunday", 2, 0], ["Monday", 1, 5], ["Tuesday", 5, 0], ["Thursday", 2, 0], ["Friday", 3, 0], ["Friday", 1, 0], ["Saturday", 4, 0], ["Monday", 8, 0], ["Monday", 1, 0], ["Tuesday", 1, 0], ["Tuesday", 2, 0], ["Wednesday", 0, 5]]
>>> stuff=zip(*stuff)
>>> map(sum,stuff[1:])
[37, 10]
对于每个项目灵活的值数量和更少的字符,可以使用
In [1]: [sum(values) for values in zip(*l)[1:]]
Out[1]: [37, 10]
zip
生成对应项组合的元组(即包含所有第一项的元组、包含所有第二项的元组等),每个元组可以求和(除了第一个字符串值)。当然,如果需要,您仍然可以在开始时预先编写“
或任何您喜欢的内容。我认为100
和60
只是一些任意示例,而不是你在问题列表中期望的实际结果?是的,这些是任意数字。如果你不介意,我想再问你一个问题,无论是聊天还是其他什么。为什么不在这里问你的问题,这样每个人都可以参与?
In [1]: [sum(values) for values in zip(*l)[1:]]
Out[1]: [37, 10]