11 python python-3.x
在蟒蛇3.x中,是否有一些a
,b
这样max(a, b) != max(b, a)
?
a
并且b
应该是内置的python类型,并且不包含任何转换。
该类型的a
和b
可以是:NUM,浮法,布尔,列表,元组...
例:
a = 1 # Correct
a = [1, 2] # Correct
a = float('nan') # Wrong
Run Code Online (Sandbox Code Playgroud)
orl*_*rlp 17
这满足所有条件:
>>> max(1.0, float("nan"))
1.0
>>> max(float("nan"), 1.0)
nan
Run Code Online (Sandbox Code Playgroud)
这是因为比其他任何比较!=
或is
与float("nan")
总是返回false。
更笼统地说,max(a, b) != max(b, a)
当类型a, b
不提供总订单时,我们可以拥有。正如Daniel Mesejo指出的那样,布景也具有此属性。对于集合<
表示“严格子集”,但是具有{1, 2}
和{3, 4}
都不是另一个的严格子集,因此:
>>> max({1, 2}, {3, 4})
{1, 2}
>>> max({3, 4}, {1, 2})
{3, 4}
Run Code Online (Sandbox Code Playgroud)
从技术上讲,这一点没有,max(a, b) != max(b, a)
因为1 == True
,但是仍然存在明显的差异:
>>> max(True, 1)
True
>>> max(1, True)
1
Run Code Online (Sandbox Code Playgroud)
根据文档,使用max
on set会产生未定义的结果:
因此,对于依赖于总排序的函数来说,集合不是合适的参数(例如,给定一系列集合作为输入,min(),max()和sorted()会产生未定义的结果)。
这是一个例子
a = {1, 2}
b = {2, 3}
print(max(b, a) != max(a, b))
Run Code Online (Sandbox Code Playgroud)
输出量
True
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
603 次 |
最近记录: |