輸入:如何總結列表的第二個元素;如果在列表中的第一個元素匹配
[["US", 2], ["UK", 3], ["FR", 4], ["US", 2], ["US", 2], ["UK", 2]]
輸出:
[["US", 6], ["UK", 5], ["FR", 4]]
我要總結的名單,如果第二要素列表中的第一個元素是匹配的。我曾嘗試使用字典和集合,但我無法提出一個邏輯。這可以很容易地在Hadoop或Spark中完成,因爲框架將減少部分,並且我們可以輕鬆地總結值列表。但我不知道如何在python中完成。有人可以幫忙嗎?
注:我正在尋找優化的解決方案。不使用很多for循環。
什麼都試過了:
import collections
l1 = [["US", 2], ["UK", 3], ["FR", 4]]
l2 = [["US", "[email protected]"], ["UK", "[email protected]"], ["BR", "[email protected]"]]
l1 = dict(l1)
l2 = dict(l2)
l1set = set(l1.keys())
l2set = set(l2.keys())
for i in l1set & l2set:
print l2[i]
請出示您的工作。你有什麼嘗試? –
看來@bernie和我已經想出了不同的解決方案。你在找什麼結果? –
你好@HaiVu,正如我所說我無法想出邏輯。但這是我爲簡單列表而嘗試的一個。進口集合 l1 = [[「US」,2],[「UK」,3],[「FR」,4]] l2 = [[「US」,「[email protected]」], 「英國」, 「[email protected]」],[ 「BR」, 「[email protected]」]] L1 =字典(L1) L2 =字典(L2) l1set =設定(L1。 ()) l2set = set(l2.keys()) for i in l1set&l2set: print l2 [i] –