久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

存儲為鍵值對的元組的總和值按鍵列出

Sum values of tuples stored as key value pair in list by key(存儲為鍵值對的元組的總和值按鍵列出)
本文介紹了存儲為鍵值對的元組的總和值按鍵列出的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我有一個類似 [('a',2),('a',3),('b',3),('c',2),('b',4)]

我想對所有相似的鍵求和并得到 [('a',5),('c',2),('b',7)] 以任何順序都可以.

I want to sum all similar keys and get [('a',5),('c',2),('b',7)] in any order is fine.

有沒有比使用字典更好的方法來做到這一點.最好使用列表理解,例如 [i for j in a for ...]

Is there a better way to do this instead of using a dictionary. Preferably using list comprehension something like [i for j in a for ...]

>>> a = [('a',2),('a',3),('b',3),('c',2),('b',4)]
>>> from collections import defaultdict
>>> d = defaultdict(int)
>>> for i,j in a:
...   d[i] += j 
... 
>>> d
defaultdict(<type 'int'>, {'a': 5, 'c': 2, 'b': 7})
>>> zip(d.keys(),d.values())
[('a', 5), ('c', 2), ('b', 7)]

在 Python-3 中,最后一行需要 list(zip(d.keys(),d.values()))

In Python-3, the last line requires list(zip(d.keys(),d.values()))

推薦答案

這也可以用 itertools.groupby 在列表推導中,盡管您的方法看起來不錯,并且始終使用列表推導并沒有內在的好處.恕我直言,在沒有其他問題的情況下對一兩行額外的代碼進行處理是徒勞的冒險.如果您希望進一步添加到任何計數中,將此結果保留為字典而不是列表也可能有意義 - 字典是更合適的結構.

This is feasible alternatively with itertools.groupby in a list comprehension, although your approach seems fine and there is no inherent benefit to always using list comprehensions. Getting worked up about an extra line or two of code with no further issues is a fruitless venture, IMHO. It may also make sense to maintain this result as a dictionary instead of a list in case you wish to further add to any of the counts - the dictionary is the more suitable structure.

使用 itertools.groupby 方法,您可以根據第一個元組元素對已排序的組求和.

Using the itertools.groupby approach, you are summing the sorted groups based on first tuple elements.

from itertools import groupby
from operator import itemgetter

my_list = [('a',2),('a',3),('b',3),('c',2),('b',4)]
first = itemgetter(0)
sums = [(k, sum(item[1] for item in tups_to_sum))
        for k, tups_to_sum in groupby(sorted(my_list, key=first), key=first)]

輸出:

[('a', 5), ('b', 7), ('c', 2)]

<小時>

這顯然也可以(并且可能更適合)作為字典理解

{(k, sum(item[1] for item in tups_to_sum))
            for k, tups_to_sum in groupby(sorted(my_list, key=first), key=first)}

這篇關于存儲為鍵值對的元組的總和值按鍵列出的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

How to draw a rectangle around a region of interest in python(如何在python中的感興趣區域周圍繪制一個矩形)
How can I detect and track people using OpenCV?(如何使用 OpenCV 檢測和跟蹤人員?)
How to apply threshold within multiple rectangular bounding boxes in an image?(如何在圖像的多個矩形邊界框中應用閾值?)
How can I download a specific part of Coco Dataset?(如何下載 Coco Dataset 的特定部分?)
Detect image orientation angle based on text direction(根據文本方向檢測圖像方向角度)
Detect centre and angle of rectangles in an image using Opencv(使用 Opencv 檢測圖像中矩形的中心和角度)
主站蜘蛛池模板: 视频一区在线播放 | 成人在线免费视频观看 | 国产日产精品一区二区三区四区 | 一级日批片 | 久色网| www.888www看片 | 美女久久久久久久久 | 在线免费观看一区二区 | 农夫在线精品视频免费观看 | 中文天堂在线观看 | 免费观看成人鲁鲁鲁鲁鲁视频 | 91网在线播放 | 成人av一区| 自拍视频网站 | 亚洲播放 | 久久精品中文字幕 | 一区二区三区欧美 | 日韩av成人在线 | 99免费在线视频 | 久久91精品国产 | 精品一区二区久久久久久久网站 | 国产传媒视频在线观看 | 日本在线一二 | 国产亚洲精品久久久久久豆腐 | 91精品中文字幕一区二区三区 | 国产资源在线视频 | 欧美午夜一区二区三区免费大片 | 婷婷二区| 国产一区二区三区免费观看在线 | 91九色麻豆 | 日本一区二区三区免费观看 | 小早川怜子xxxxaⅴ在线 | 国产精品久久久久久久久免费高清 | 蜜臀网 | 欧美极品视频在线观看 | 欧美激情国产日韩精品一区18 | av一级一片 | 日韩视频精品 | 成人毛片网站 | 日韩一二三区视频 | 国产成人精品午夜视频免费 |