gpt4 book ai didi

python - 按任意键对元组列表进行排序

转载 作者:太空狗 更新时间:2023-10-29 20:18:58 25 4
gpt4 key购买 nike

order = ['w','x','a','z']
[(object,'a'),(object,'x'),(object,'z'),(object,'a'),(object,'w')]

如何根据'order'提供的键列表按第二个元素对上面的元组列表进行排序?

13 年 11 月 18 日更新:

我找到了一个更好的方法来解决这个问题的变体,其中键肯定是唯一的,在这个问题中有详细说明:Python: using a dict to speed sorting of a list of tuples .

我上面的问题不太适用,因为给定的元组列表有两个键值为 'a' 的元组。

最佳答案

您可以使用sorted,并给出一个函数作为,该函数返回顺序中每个元组的第二个值的索引列表。

>>> sorted(mylist,key=lambda x: order.index(x[1]))

[('object', 'w'), ('object', 'x'), ('object', 'a'), ('object', 'a'), ('object', 'z')]

请注意,只要元组中的值不在 order 列表中,此操作就会失败。

编辑:

为了更加安全,您可以使用:

sorted(mylist,key=lambda x: x[1] in order and order.index(x[1]) or len(order)+1)

这会将所有带有 order 列表中缺少的键的条目放在结果列表的末尾。

关于python - 按任意键对元组列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13408919/

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