当我对列表列表应用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
之前,因为在您的示例中,实际上是在进行字符串比较,而不是数字比较。一种解决方案是将string-numbers
转换成数字。你知道吗这是因为键是按字典顺序排序的字符串。要按所需顺序排序,需要整数键。下面给出了一种获取这些信息的方法。你知道吗
你需要把“B3”和“B10”变成整数,3和10例如:
相关问题 更多 >
编程相关推荐