gpt4 book ai didi

python - 按另一个列表中项目的存在对列表进行排序

转载 作者:行者123 更新时间:2023-12-04 21:55:31 24 4
gpt4 key购买 nike

假设我有两个列表:

a = ['30', '10', '90', '1111', '17']
b = ['60', '1201', '30', '17', '900']

您将如何最有效地对其进行排序,例如:

列表 b相对于 a 排序. b 中的独特元素应该放在排序列表的末尾。 a 中的独特元素可以忽略。

示例输出:
c = ['30', '17', '60', '1201', '900']

对不起,这是一个简单的问题。我的尝试被困在十字路口。
intersection = sorted(set(a) & set(b), key = a.index)

最佳答案

您可以创建一个自定义字典,键是 a 中的条目。和值(value)观他们的位置。然后排序 b根据字典中的值。您可以使用 dict.get用于查找和 inf如果该值不存在:

a = ['30', '10', '90', '1111', '17']
b = ['60', '1201', '30', '17', '900']

d = {i:ix for ix, i in enumerate(a)}
#{'30': 0, '10': 1, '90': 2, '1111': 3, '17': 4}
sorted(b, key=lambda x: d.get(x, float('inf')))
#['30', '17', '60', '1201', '900']

关于python - 按另一个列表中项目的存在对列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60211248/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com