use*_*027 2 python tuples list
我有两个包含两个元素元组的列表。元组的第一个元素是 ID,第二个元素是某种值。值的类型取决于列表。
lst1 = [ ('a', 1), ('b', 2), ('c', 3) ]
lst2 = [ ('b', 5), ('a', 4), ('c', 6) ]
Run Code Online (Sandbox Code Playgroud)
将它们组合成的最简单方法是什么:
lst3 = [ ('a', 1, 4), ('b', 2, 5), ('c', 3, 6)]
Run Code Online (Sandbox Code Playgroud)
我建议您首先将这些元组列表转换为字典。然后,假设两个列表包含相同的“键”,您可以使用简单的列表理解从两个字典中获取各自的值。
lst1 = [ ('a', 1), ('b', 2), ('c', 3) ]
lst2 = [ ('b', 5), ('a', 4), ('c', 6) ]
dict1 = dict(lst1)
dict2 = dict(lst2)
lst3 = [(k, dict1[k], dict2[k]) for k in sorted(dict1)]
Run Code Online (Sandbox Code Playgroud)
请注意,字典没有固定的顺序。如果您想保留键在 中的顺序lst1,您也可以使用它,如评论中所建议的:
lst3 = [(k, v, dict2[k]) for k, v in lst1]
Run Code Online (Sandbox Code Playgroud)