我想按数字排序

s = [['92', '022'],['82','12'],['77','13']]

所以我用,
s = [list( map(int,i) ) for i in s]

s.sort()

结果出来了
[[77, 13],[82, 12],[92, 22]]

但我想保持22的原样,也就是“022”
所以,我的问题是如何防止零开始!

最佳答案

您可以将sorted与以下key一起使用,这样您就可以避免使用列表理解来转换实际值:

sorted(l, key = lambda x: int(x[0]))
[['77', '13'], ['82', '12'], ['92', '022']]

您也可以按照@aws嫒学徒的建议使用operators.itemgetter
sorted(l, key = lambda x: int(itemgetter(0)(x)))
[['77', '13'], ['82', '12'], ['92', '022']]

10-06 15:22