python - 为什么列表的列表排序不正确?

标签 python list sorting

当我申请时sortsorted对于列表的列表,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/

相关文章:

python - appcfg.py : error: no such option: --dump on google-app-engine

python - 无法设置 SelectControl 元素的值

python - 将临时值分配给循环python中的变量

mysql - 使用单个查询对多个表进行排序

javascript - 为什么 Angular orderBy 自定义比较器不起作用?

python - 返回 Pandas 中组/多索引的前 n 个值

python - 如何在 Python3 中使用 Kivy 绘制一条简单的直线和一个矩形?

python - 为什么 Python 排序将大写项目放在第一位?

java - 按特定值对对象列表进行排序

c++ - 如何为 txt 文件中的每个名称创建一个整数?