如何按第二个元组元素对元组列表进行排序?

2024-09-30 10:34:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样一份清单:

[('TIPE_ORG', 'Corea'), ('TIPE_ORG', 'United Kingdom'), ('TIPE_ORG', 'Russia'), ('TIPE_ORG', 'Germany'),('TIPE_PER', 'Pepe Martínez')]

我希望它按文本长度从第二个参数的最大值到最小值排序 就这样吧:

[('TIPE_ORG', 'United Kingdom'),('TIPE_PER', 'Pepe Martínez'), ('TIPE_ORG', 'Germany'), ('TIPE_ORG', 'Russia'),('TIPE_ORG', 'Corea')]

我已经尝试过这样做,但有两个参数并不能为第二个参数排序,而是为第一个TIPE_组织排序:

x.sort(key=len, reverse=True)

Tags: org文本参数排序sortunitedkingdomper
2条回答

您可以将sorted方法与lambda函数一起使用,如下所示

lst=[('TIPE_ORG', 'Corea'), ('TIPE_ORG', 'United Kingdom'), ('TIPE_ORG', 'Russia'), ('TIPE_ORG', 'Germany'),('TIPE_PER', 'Pepe Martínez')]

sorted(lst,key=lambda key:len((key[1])),reverse=True)

输出将是

[('TIPE_ORG', 'United Kingdom'),
('TIPE_PER', 'Pepe Martínez'),
('TIPE_ORG', 'Germany'),
('TIPE_ORG', 'Russia'),
('TIPE_ORG', 'Corea')]

这可以通过使用sort方法就地排序或使用sorted方法排序并返回新的排序列表来实现。对于equality决策,我们使用lambda函数。见下文:

my_list=[('TIPE_ORG', 'Corea'), ('TIPE_ORG', 'United Kingdom'),('TIPE_PER', 'Pepe Martínez')]

my_new_list = sorted(my_list, key=lambda this_tup:len(this_tup[1]), reverse=True)

sort(my_list, key=lambda this_tup:len(this_tup[1]), reverse=True)

你可以参考这个链接,他们有关于lambda expressions和如何使用它的好例子

lambda

相关问题 更多 >

    热门问题