Python - 按第一个元素对元组列表进行排序,末尾为空白值

问题描述 投票:0回答:1

我有这个清单:

list = (('',''),('1','products'),('3','test'),('2','person'))

当我使用时:

sorted(list)
它给了我

`list = (('',''),('1','products'),('2','person'),('3','test'))`

我想保留这个顺序,但只是将空白值放在最后,如下所示:

list = (('1','products'),('2','person'),('3','test'),('',''))

谢谢

python list sorting tuples
1个回答
0
投票

使用

key
函数在元组的开头添加一个元素,指示原始元组是否有空的第一个元素。

my_list = (('',''),('1','products'),('3','test'),('2','person'))
sorted(my_list, key=lambda x: (x[0] == '', *x))

结果:

[('1', 'products'), ('2', 'person'), ('3', 'test'), ('', '')]
© www.soinside.com 2019 - 2024. All rights reserved.