使用Python 2
我有一份清单
list_of_list = [[a5, abc, xyz], [a1, abc, def],[a2, 4, 2, 3], [a3, 1, 2]]
我必须对列表进行排序,以便所有在第2位到后面位置都有数字的项目都会出现在那些位置有字母的项目之后。
输出应为
sorted_list = [[a1, abc, def], [a5, abc, xyz], [a3, 1, 2], [a2, 4, 2, 3]]
我该怎么做?使用下面的代码并不完全这样做,因为排序不仅基于内部列表中的第二项。
from operator import itemgetter
sorted(list_of_list, key=itemgetter(1))
有什么建议吗?
答案 0 :(得分:0)
您可以按以下元组排序,以获得所需的结果:user_id
(x[1].isdigit(), x[1], x[0])
输出:
l = sorted(list_of_list, key=lambda x: (x[1].isdigit(), x[1], x[0]))
print(l)