您以错误的方式获得了元组的顺序。当Python在元组上排序时,第一个值是 主 排序,第二个值是子排序,依此类推…-您的代码假定顺序相反。
您要按长度排序, 然后 按字母顺序排序:
>>> x.sort(key=lambda item: (len(item), item))>>> x['a', 'b', 'c', 'aa', 'ab', 'ba', 'aaa']
编辑:正如DSM在注释中指出的那样,Python首先将字母排序为大写字母,然后将其小写。如果不需要这种行为,请参见此答案。

您以错误的方式获得了元组的顺序。当Python在元组上排序时,第一个值是 主 排序,第二个值是子排序,依此类推…-您的代码假定顺序相反。
您要按长度排序, 然后 按字母顺序排序:
>>> x.sort(key=lambda item: (len(item), item))>>> x['a', 'b', 'c', 'aa', 'ab', 'ba', 'aaa']
编辑:正如DSM在注释中指出的那样,Python首先将字母排序为大写字母,然后将其小写。如果不需要这种行为,请参见此答案。