【问题标题】:How to re-order a list of tuples according to the order of the elements in another list如何根据另一个列表中元素的顺序重新排序元组列表
【发布时间】:2019-09-24 21:54:32
【问题描述】:

有两个列表:

list1 = [('A', 1), ('B', 2), ('C', 3)]
list2 = ['C', 'A', 'B']

如何重新组织list1 中的元组,使所有元组的第一个元素与list2 中的元素顺序相同?

即,预期的结果是

list1 = [('C', 3), ('A', 1), ('B', 2)]

【问题讨论】:

    标签: python-3.x


    【解决方案1】:

    您可以按如下方式使用列表推导:

    d = dict(list1)
    [(i,d.get(i)) for i in list2]
     [('C', 3), ('A', 1), ('B', 2)]
    

    【讨论】:

    • 这非常低效:i,dict(list1).get(i) 为什么要在每次循环迭代时重新创建dict?只需在外面创建字典。
    猜你喜欢
    • 2022-01-24
    • 2015-02-27
    • 1970-01-01
    • 2019-07-09
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 2019-07-30
    相关资源
    最近更新 更多