如何在python中定义"最大"集?

0 python max set

考虑以下代码:

b = set([111,222,333,444])
a = set([10,20,30])
print max(a,b,key=len) # set([444, 333, 222, 111])
print max(a,b) # set([10, 20, 30])
Run Code Online (Sandbox Code Playgroud)

我很好奇,如果没有'key'参数,max()函数将返回一个令人困惑的结果,它不是包含更多项目的那个,也不是第一个项目更大的那个(10 <111),也不是第一个参数(如果它不知道如何比较输入参数,也许它会返回第一个参数,即b?)

通过max()函数的解释,如果输入是两个或更多个参数,它应该返回"最大的参数".那么如何在几个集合中定义"最大"?

Mar*_*ers 5

套覆盖<,<=,>并且>=使子集超集的比较,而不应被视为可订购.

因此,没有"最大"或"最小"设置.

集类型文档:

issubset(other)
set <= other

测试集合中的每个元素是否在其他元素中.

set < other

测试集合是否是其他集合的适当子集,即set <= other and set != other.

issuperset(other)
set >= other

测试其他元素是否在集合中.

set > other

测试集合是否是其他集合的正确超集,即set >= other and set != other.

并进一步下来

当且仅当第一组是第二组的适当子集(是子集,但不相等)时,集合小于另一个集合.当且仅当第一个集合是第二个集合的正确超集(是超集,但不相等)时,集合大于另一个集合.

最后

由于集合仅定义了部分排序(子集关系),因此list.sort()对于集合列表,方法的输出是未定义的.

max()min()使用相同的排序定义来确定一系列输入中的最大或最小项,并且因为集合根据子集关系定义排序,所以输出max()min()未定义.