boz*_*doz 5 python tuples list
这是我的元组列表:
regions = [(23.4, 12, 12341234),
(342.23, 19, 12341234),
(4312.3, 12, 12551234),
(234.2, 12, 12341234)]
Run Code Online (Sandbox Code Playgroud)
我试图在元组列表中对第一个索引值求和,其中索引1和2的值相同.注意,区域[0]和区域[3]在索引1和2处具有相同的值.
我想要的清单是:
result = [(257.6, 12, 12341234),
(342.23, 19, 12341234),
(4312.3, 12, 12551234)]
Run Code Online (Sandbox Code Playgroud)
我意识到我可能需要首先将它保存为字典,可能将第二个值作为第一个键,将第三个值作为第二个键,并总结它是否已经存在.只是想知道是否有更好或更简单的方法:我想也许使用一些交叉功能.
from collections import defaultdict
sums = defaultdict(float)
for c, a, b in regions:
sums[a, b] += c
result = [(csum, a, b) for (a, b), csum in sums.iteritems()]
Run Code Online (Sandbox Code Playgroud)
没有内置函数可以做到这一点; 这太专业了.
| 归档时间: |
|
| 查看次数: |
190 次 |
| 最近记录: |