我try 先按第一个元素对元组列表进行排序,然后按第二个元素排序(如果存在),然后再按第三个元素排序(如果存在).
由于元组的长度不同,其中一些元组没有第二个或/和第三个元素,因此错误显示为:IndexError: list index out of range on line undefined.
list_to_sort = [(1, 11), (2, 0, 0), (1, 2), (2), (0, 1), (1, 2, 1), (1, 1, 1), (2, 0)]
预期输出:
[(0, 1), (1, 1, 1), (1, 2), (1, 2, 1), (1, 11), (2), (2, 0), (2, 0, 0)]
我已经try 过了,但出现了相同的错误:IndexError: list index out of range on line undefined.
1.
print(sorted(list_to_sort,key=lambda x:(x[0], x[1], x[2])))
print(sorted(list_to_sort,key=lambda x:(x[0],(x[1] is not None, x[1]), (x[2] is not None, x[2])))
def check(x):
if x:
return x
else:
return ""
print(sorted(list_to_sort,key=lambda x:(x[0], check(x[1]), check(x[2])))
我想让代码判断第二个/第三个元素是否在那里,如果是,就用它的值排序,如果不是,假设它是空的或零.
这看起来很简单,但我别无 Select .欢迎提出任何建议:)提前谢谢!