簡體   English   中英

元組中的和值(dict中的值)

[英]Sum values in tuple (values in dict)

我有一個字典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字典。 所有元組的長度始終相同(在本例中,長度為2)。

我如何告訴Python我希望out dict包含與我必須使用的長度相匹配的大小的元組?

我想你想要內置的zip功能

In [26]: {k: tuple(sum(x) for x in zip(*v)) for k, v in data.items()}
Out[26]: 
{('SouthWest', 2015): (19, 7),
 (None, 2014): (15, 3),
 ('Middle', 2014): (17, 5)}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM