>>> [6,7,8,16,18] <= [6,8,11,13,17]
True
<=
应该返回 True
如果左集中的每个元素都在右集中。但是7,16,18
不在正确的列表中。即使我像这样把数字放在集合中
>>> (6,7,8,16,18) <= (6,8,11,13,17)
True
最佳答案
您使用的是列表和元组,而不是集合。使用 {...}
for set literals :
>>> {6, 7, 8, 16, 18} <= {6, 8, 11, 13, 17}
False
或使用 set([...])
或 frozenset([...])
.设置文字语法仅在 Python 2.7 和 3.x 中可用。
列表和元组不支持集合操作。相反,<
, <=
, >
和 >=
比较遵循字典顺序约定;内容成对比较,结果基于两个序列之间第一个不同的值。
按字典顺序排序,您的左侧列表先于右侧列表排序(6 == 6
,然后是 7 < 8
),因此序列的结果是完全正确的。
关于python - python 中 <= 的输出很奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22966317/