为什么min({1},{0})返回{1}

时间:2017-06-08 12:14:03

标签: python min

min()函数应返回给定的最小数字。那么为什么

min({0},{1})

返回{0},而

min({1},{0})

返回{1}?

3 个答案:

答案 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])

这意味着它将返回,而不是数字