Python 2.x排序的拼图

hyn*_*cer 2 python python-2.x

我在Python 2.x中有一个部分排序的元组.

为什么Python反转它而不是排序呢?

>>> data = (u'a', (1,), 'b ', u'b', (2,), 'c ', u'c', (3,), 'd ', u'd', (4,), 'e')
>>> sorted(data) == list(reversed(data))
True
Run Code Online (Sandbox Code Playgroud)

我期待着Python 3.

Dee*_*tan 11

它失败了,因为排序算法依赖于元素的总排序,这意味着传递<.

unicode字符串,元组和字符串的顺序不可传递:

>>> a = 'x'
>>> b = (1,)
>>> c = u'x'
>>> a < b
True
>>> b < c
True
>>> a < c
False
Run Code Online (Sandbox Code Playgroud)

即,您的列表中没有有效的排序.至少不使用默认比较器.