如何添加元組
回答
這是一個偉大的用例爲collections.Counter
...
from collections import Counter
tup = ([(5,2),(7,2)], [(5,1),(7,3),(11,1)])
counts = sum((Counter(dict(sublist)) for sublist in tup), Counter())
result = list(counts.items())
print(result)
一個缺點是,你將失去的輸入順序。他們出現通過鍵進行排序,所以你可以只對項目進行排序:
result = sorted(counts.items())
一個Counter
是一本字典,其目的是保持垃圾桶的「罪狀」。計數巧妙地設計,以便您可以簡單地將它們加在一起(它將計數「bin-wise」相加 - 如果在兩個計數器中不存在bin,則缺少的bin的值被假定爲0)。所以,這解釋了爲什麼我們可以在一堆計數器上使用sum
來獲取具有所需值的字典。不幸的是,這種解決方案,一個Counter
不能使用能產生像正常映射2項序列可迭代實例化...,
Counter([(1, 2), (3, 4)])
將創建一個Counter
連鍵(1, 2)
和(3, 4)
- 這兩個值將會爲1。它的工作,如果你有一個卻映射創建爲預期:
Counter(dict([(1, 2), (3, 4)]))
創建具有鍵1
和3
一個Counter
(和值2
和4
)。
嘗試驗證碼(蠻力,可以是..)
dt = {}
tp = ([(5,2),(7,2)],[(5,1),(7,3),(11,1)])
for ls in tp:
for t in ls:
dt[t[0]] = dt[t[0]] + t[1] if t[0] in dt else t[1]
print dt.items()
這裏採用的方法是遍歷元組的列表和元組的數據存儲爲一個字典,其中,所述元組t[0]
中的第一個元素是key
,第二個元素t[1]
是value
。
迭代時,每次在元組的第一個元素中找到相同的鍵時,將該值與元組的第二個元素相加。最後,我們將根據需要提供包含所有key
,value
對的字典dt
。將這個字典轉換爲元組列表dt.items()
,我們有我們的輸出。
可否請您進一步解釋? –
@zaolee_dragon:在答案中更新瞭解釋。 –
- 1. 如何添加元素的元組
- 2. 如何將元素添加到數組?
- 3. 如何在元組中添加信息?
- 4. 如何爲元組添加值?
- 5. 如何列表項添加到元組中的元組
- 6. 的Javascript:我如何添加X元素添加到數組
- 7. 另一元組添加到元組
- 8. 在元組列表中添加元組
- 9. 添加一個元組的元組
- 10. 添加元素添加到數組
- 11. 如何在元組中單獨添加元素?
- 12. 如何使用CHOLMOD將元素添加到三元組矩陣?
- 13. 從兩組添加元素
- 14. PySpark reduceByKey?添加鍵/元組
- 15. 添加數組元素
- 16. 添加數組元素Javascript
- 17. 添加元素到數組?
- 18. 添加數組元素的
- 19. 添加數組元素
- 20. 添加到數組元素
- 21. 將元素添加到數組,如json
- 22. 如何將新列添加到組中的每個元組?
- 23. 如何將元組添加到Swift數組?
- 24. 如何將一組元素添加到我的數組中?
- 25. 如何元框添加到
- 26. 如何添加元素?
- 27. 元素添加兩個元組
- 28. 向表單元添加數組元素
- 29. 如何加入元組datetime
- 30. 添加可選的元組數組
請向我們展示您嘗試過的最簡單,完整,可驗證的例子。 – user161778