【发布时间】:2017-03-04 09:58:45
【问题描述】:
几天前我刚开始使用python 3。在编程时,我遇到了奇怪的情况
a = [
[5, [[1, 1, None], [None, None, None], [None, None, None]]],
[5, [[1, None, 1], [None, None, None], [None, None, None]]]
]
max(a)给我
Traceback(最近一次调用最后一次):文件“”,第 1 行,in TypeError:不可排序的类型:NoneType() > int()
但如果我尝试
a = [
[5, [[1, 1, None], [None, None, None], [None, None, None]]],
[5.1, [[1, None, 1], [None, None, None], [None, None, None]]]
]
max(a) 显示
[5.1, [[1, None, 1], [None, None, None], [None, None, None]]]
这种行为有什么特殊原因吗?
更新 1: 我尝试了一些不同的东西
a = [[5, [[1,2], [3,4]]],[5,[[3,4],[5,10]]],[5,[[5,6],[7,8]]]]
而max(a) 是[5, [[5, 6], [7, 8]]]
我的疑问是为什么在这种情况下没有显示错误?
【问题讨论】:
-
您对哪个部分感到困惑?如果列表的第一个元素不相等,则无需与第二个元素绑定。
-
投反对票有什么特别的原因吗?
-
@jonrsharpe:好吧..我怀疑为什么 python 向我显示错误?对于
[[5, [[1,2], [3,4]]],[5,[[3,4],[5,6]]],[5,[[5,6],[7,8]]]],输出为[5, [[5, 6], [7, 8]]],为什么没有显示相同的错误? -
为什么你认为你会得到同样的错误?该示例包含哪些不可排序的类型?
-
您不能将不可排序的类型混合在一起并期望
max会起作用。
标签: python python-3.x