当我将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大神给出的解决方案
这是因为,根据Python,10
在2
之前,因为在您的示例中,您实际上是在进行字符串比较,而不是数字比较。一种解决方案是将string-numbers
转换为数字。