min()函数应返回给定的最小数字。那么为什么
min({0},{1})
返回{0},而
min({1},{0})
返回{1}?
答案 0 :(得分:7)
在python集合中,根据一个是否是另一个的子集进行比较。
None是另一个的子集,因此<
在所有情况下都会False
,因此会返回第一个。
所以{1}<{0}
提供False
就像{2}<{1}
给出False
而{2}<{3,4,5}
给出False。
但是{1,2}<{1,3,2}
会True
。
这意味着在集合上没有定义总订单。
答案 1 :(得分:5)
comparison operators for sets检查“子集”不是用于数字比较:
set < other
测试该集合是否是其他集合的正确子集,即设置&lt; = other并设置!= other。
你的两个集合都是不相交的{0} < {1} == False
和{1} < {0} == False
所以它总会返回你放入min
的“第一”集。
答案 2 :(得分:4)
因为这些设置,而不是数字。
此外,它应该返回{1},而不是1,如您所见:
>>> min({0},{1})
set([0])
>>> min({1},{0})
set([1])
这意味着它将返回集,而不是数字。