Python 查找集合中最大元素时的错误

Python 查找集合中最大元素时的错误,python,Python,有人能解释一下为什么我会有这个结果吗 >>> a = set([(0, 1), (1, 0), (0, 0)]) >>> b = set([(1, 2), (2, 0), (0, 2), (2, 1), (1, 1)]) >>> max(a,b) set([(0, 1), (1, 0), (0, 0)]) >>> max(b,a) set([(1, 2), (2, 0), (0, 2), (2, 1)

有人能解释一下为什么我会有这个结果吗

>>> a = set([(0, 1), (1, 0), (0, 0)])    
>>> b = set([(1, 2), (2, 0), (0, 2), (2, 1), (1, 1)])    
>>> max(a,b)    
set([(0, 1), (1, 0), (0, 0)])
>>> max(b,a)
set([(1, 2), (2, 0), (0, 2), (2, 1), (1, 1)])

对于集合,
a
意味着
a
b
的子集。你的两个集合都不是另一个集合的子集,所以它们被认为“同样大”,这就是为什么你总是得到第一个参数

集合排序演示:

>>> sorted([{5,6,7,8,9}, {1,2,3}, {1,2}, {1}, {1,2,3,4}])
[{8, 9, 5, 6, 7}, {1}, {1, 2}, {1, 2, 3}, {1, 2, 3, 4}]
这里,
{5,6,7,8,9}
既不是其他任何函数的子集也不是超集,因此它被认为是同样大的,因为它在开始时,排序函数是稳定的,所以它保持在原来的位置。然而,其他四个得到了很好的排序,因为
{1}
{1,2}
的子集,等等

但是,由于集合之间没有总排序,因此对它们进行排序在一定程度上是不可预测的。例如,这里的
{5,6,7,8,9}
确实会移动到另一个位置:

>>> sorted([{1,2,3}, {1,2}, {5,6,7,8,9}, {1}, {1,2,3,4}])
[{1}, {1, 2}, {1, 2, 3}, {8, 9, 5, 6, 7}, {1, 2, 3, 4}]
如果要以另一种方式(例如按大小)对集合进行排序,则只需使用相应的

>>> sorted([{1,2,3}, {1,2}, {5,6,7,8,9}, {1}, {1,2,3,4}], key=len)
[{1}, {1, 2}, {1, 2, 3}, {1, 2, 3, 4}, {8, 9, 5, 6, 7}]

>>> max([{1,2,3}, {1,2}, {5,6,7,8,9}, {1}, {1,2,3,4}], key=len)
{8, 9, 5, 6, 7}

我们有解释为什么会这样吗?为什么不按长度排序呢?@JeanDupont”