在Python中,有没有办法对列表和元组组成的列表进行排序?

对我来说有点像a和b,那为什么c会有所不同?有没有办法使它与a和b保持一致,而不将所有内容都转换为列表或元组?

>>> a = [(1, 0), (0, 0)]
>>> a.sort()
>>> print a
[(0, 0), (1, 0)]
>>>
>>> b = [[1], (0)]
>>> b.sort()
>>> print b
[0, [1]]
>>>
>>> c = [[1, 0], (0, 0)]
>>> c.sort()
>>> print c
[[1, 0], (0, 0)]
>>>
最佳答案
可以将它们转换为仅用于排序的目的:

>>> c = [[1, 0], (0, 0)]
>>> c.sort(key=tuple)
>>> c
[(0, 0), [1, 0]]

话虽这么说,包含列表和元组混合的列表是代码气味.

转载注明原文:在Python中,有没有办法对列表和元组组成的列表进行排序? - 代码日志