python - 添加两个列表的最佳方式?

标签 python list tuples

我有两个列表

list1 = [(100, A, 22), (200,B, 33), (300, C, 44)]

list2 = [(100,A,333), (200,B,444), (500, D, 555)]

所以我想要的最终列表是

final_list = [ (100,A, 22, 333), (200,B,33,444), (300,C,44,0), (500,D,0,555)]

如果我只是添加两个列表,它不会帮助我。我怎样才能获得最终名单。

谢谢

最佳答案

您的输入数据首先应该是字典:

dict1 = {(100, "A"): 22, (200,"B"): 33, (300, "C"): 44}
dict2 = {(100, "A"): 333, (200,"B"): 444, (500, "D"): 555}

现在您可以轻松构建组合字典:

>>> {k: (dict1.get(k, 0), dict2.get(k, 0))
...  for k in dict1.viewkeys() | dict2.viewkeys()}
{(100, 'A'): (22, 333), (200, 'B'): (33, 444), 
 (300, 'C'): (44, 0), (500, 'D'): (0, 555)}

( python 2.7)

如果出于某种原因你需要对列表进行操作,我建议先把你的列表变成字典

dict1 = {(k1, k2): v for k1, k2, v in list1}
dict2 = {(k1, k2): v for k1, k2, v in list2}

关于python - 添加两个列表的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9177674/

相关文章:

python - 将 PDF 转换为文本 - 保留表格行 - Python

python - 如何使用列表中的随机抽取重新映射 pandas 列中的值?

python,从页面收集链接/脚本值

c# - 在 C# 中创建值列表的快速方法?

c# - 比较不同结构的数据

python - 定义获取列表中最高产品对的函数

python 模块 ffpyplayer 显示或显示视频帧到屏幕

dictionary - 字典 vs NamedTuples

python - 将成对生成器变成一对生成器

arrays - 啪啪的解释