根据 python 中元组的第二个值对一组元组进行排序

sorting a set of tuples based on second value of tuple in python

嗨,我是 python 的新手,想根据每个元组中存在的数值对这些值进行排序

b={('shoe',0.98),('bag',0.67),('leather',0.77)}

我曾尝试将其更改为列表,但无法更改元组元素 提前致谢

Python 集合是无序的,所以你不能对它们进行排序。但是您可以使用 sorted 函数对集合中的元素进行排序,并传递一个选择元组第二项的 lambda(因为集合元素是元组,并且您希望按元组的第二个元素排序)到key 参数。这个returns一个列表:

out = sorted(b, key=lambda x:x[1])

输出:

[('bag', 0.67), ('leather', 0.77), ('shoe', 0.98)]

或者你可以使用operator.itemgetter(也有attrgetter):

from operator import itemgetter

out = sorted(b, key=itemgetter(1))