当我申请时sort
或sorted
对于列表的列表,Python 无法正确排序。
例如我想通过 B1, B2, ..., B10, B11, ...
订购
但是Python的顺序是B1, B10, B11, B2, B20, B21, ...
列表的列表比我放在这里的列表更大。
def getKey(item):
return item[0]
l = [['B3', '08:20', '08:50', ('LH233', 'Berlin', '08:20', '112', '203')], ['B10', '08:40', '08:55', ('AF76', 'Toulouse', '08:40', '57', '102')]]
l.sort(key=getKey) OR sorted(l, key=getKey)
Returns:
[['B10', '08:40', '08:55', ('AF76', 'Toulouse', '08:40', '57', '102')], ['B3', '08:20', '08:50', ('LH233', 'Berlin', '08:20', '112', '203')]]
最佳答案
这是因为,根据 Python,10
位于 2
之前,因为在您的示例中,您实际上是在进行字符串比较,而不是数字比较。一种解决方案是将字符串数字
转换为数字。
关于python - 为什么列表的列表排序不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27434289/