根据另一个列表对一个列表进行排序和过滤

发布于 2022-07-28 23:05:16

问题:我想根据另一个列表对一个列表进行排序。示例:下面我想根据此列表中的“键”对 list_sec 进行排序,并且该顺序将来自 list_main。

list_main = [3, 33, 2]

list_sec = [{'key': 2, 'rocket': 'mark11'}, {'key': 332, 'rocket': 'mark23'}, {'key': 3, 'rocket': 'mark1'} ]

输出如下。(exp:list_main 中的第一个条目是 3,所以 ‘key’ : 3 应该到 index = 0,第二个值是 33,但是 list_sec 中缺少这个键,所以将丢弃它。第三个键是 2,所以接下来会出现。

output = [{'key': 3, 'rocket': 'mark1'}, {'key': 2, 'rocket': 'mark11'}]
关注者
0
被浏览
41
1 个回答
  • 面试哥
    面试哥 2022-07-28
    为面试而生,有面试问题,就找面试哥。

    试试这个简单的方法,它适用于你的情况

    list_main = [3, 33, 2]
    
    list_sec = [{'key': 2, 'rocket': 'mark11'}, {'key': 332, 'rocket': 'mark23'}, {'key': 3, 'rocket': 'mark1'} ]
    
    sorted_list = [] # The final sorted list
    for key in list_main:  # iterate on each key
        for item in list_sec:
            if item['key'] == key: # find the item based on your key
                sorted_list.append(item) # append in sequence
    print(sorted_list) # your sorted list
    

    output = [{‘key’: 3, ‘rocket’: ‘mark1’}, {‘key’: 2, ‘rocket’: ‘mark11’}]



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看