输入:如何总结列表的第二个元素;如果在列表中的第一个元素匹配
[["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] –