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

Mar*_*eck 3 python

那种ab我一样的预期,为什么会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)]
>>>
Run Code Online (Sandbox Code Playgroud)

orl*_*rlp 12

可以将它们转换为仅用于排序的目的:

>>> c = [[1, 0], (0, 0)]
>>> c.sort(key=tuple)
>>> c
[(0, 0), [1, 0]]
Run Code Online (Sandbox Code Playgroud)

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