我有两个这样的列表:
L1 = [(1, 'a'), (2, 'm'), (3, 'd') ....]
L2 = [('b', 1), ('f', 2), ('x', 1), ('w', 3), ('j', 2) ... ]
我想制作:
L3 = [('a','b'),('m','f'),('a','x'),('d','w'),('m','j'), ...]
我的意思是,列表L1的元组中的第二个元素与列表L2的元组中的第一个元素匹配。
L1和L2超过1,200万元组。
我有一个代码可以使用嵌套循环来比较每个元组的'keys',但效率很低。
以更快的方式做什么可能是一个很好的选择?
提前谢谢。
答案 0 :(得分:5)
字典具有O(1)选择/插入复杂性。使用它们:
L1_dict = dict(L1)
L3 = [(L1_dict[k], v) for v, k in L2 if k in L1_dict]