python - 根据其他列表中的元素对元组列表进行排序

标签 python list tuples

我有 2 个列表,如下所示。我希望根据 list50

中元素的顺序对列表 list100 进行排序
list50 = ['cat', ,'bat', 'cat', 'cat', 'bat', 'No Data', 'bat', 'No Data']
list100 = [('cat', 100),
  ('cat', 100),
  ('cat', 100),
  ('bat', 67),
  ('bat', 67),
  ('bat', 67),
  ('No Data', 40),
  ('No Data', 40)]

我希望将列表 list100 更改为

[('cat', 100),
  ('bat', 67),
  ('cat', 100),
  ('cat', 100),
  ('bat', 67),
  ('No Data', 40),
  ('bat', 67),
  ('No Data', 40)
  ]

有什么方法可以实现吗?

最佳答案

您可以将 list100 转换为字典,然后简单地列出 list50 中的项目及其在字典中的值:

d = dict(list100)
[(k, d[k]) for k in list50]

这将返回:

[('cat', 100), ('bat', 67), ('cat', 100), ('cat', 100), ('bat', 67), ('No Data', 40), ('bat', 67), ('No Data', 40)]

关于python - 根据其他列表中的元素对元组列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54423328/

相关文章:

c++ - boost 是否提供 make_zip_range?

python - 在 Python 中,如何在运行脚本的同时获得用户输入?

python - pandas df.plot.scatter 失败但 df.plot 生成绘图

python - 为什么引发异常会调用 __subclasscheck__?

c - 找出遍历链表时出现段错误的最佳方法是什么?

python - 元组是不可变的,在替换其条目之前创建列表

python - 为什么删除 else 会导致递归函数重复结果?

python - 如何在线性时间内根据键重新组合列表列表?

c# - 设置图表以从类列表中动态绘制点

c++ - 通过模板成员函数访问私有(private)元组元素