【发布时间】:2015-07-21 18:14:51
【问题描述】:
我有一本字典 data,它看起来像带有示例值:
defaultdict(<type 'list'>,
{(None, 2014): [(5, 1), (10, 2)],
(u'Middle', 2014): [(6, 2), (11, 3)],
(u'SouthWest', 2015): [(7,3), (12, 4)]})
我从collections.defaultdict(list) 得到这个,因为我的键必须是列表。
我的目标是获得一个新字典,其中包含每个元组相对于它们在元组中的位置的总和值。
通过运行
out = {k:(sum(tup[0] for tup in v),sum(tup[1] for tup in v)) for k,v in data.items()}
我明白了
{(None, 2014): (15, 3), (u'Middle', 2014): (17, 5), (u'SouthWest', 2015): (19, 7)}
但是,我事先不知道每个元组中有多少项,因此不能选择使用带有硬编码索引的 sum(tup[0] for tup in v)。但是,我知道元组中有多少个整数。该值是一个整数,我将它与data dict 一起得到。所有元组的长度始终相同(在本例中,长度为 2)。
如何告诉 Python 我希望 out dict 包含大小与我必须使用的长度匹配的元组?
【问题讨论】:
标签: python python-2.7 dictionary tuples