tangguo

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

python

问题:我想根据另一个列表对一个列表进行排序。示例:下面我想根据此列表中的“键”对 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'}]

阅读 130

收藏
2022-06-13

共1个答案

一尘不染

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

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’}]

2022-06-13