>>> [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
答案 0 :(得分:13)
您使用的是列表和元组,而不是设置。使用{...}
for set literals:
>>> {6, 7, 8, 16, 18} <= {6, 8, 11, 13, 17}
False
或使用set([...])
或frozenset([...])
。设置文字语法仅在Python 2.7和3.x中可用。
列表和元组不支持set操作。相反,<
,<=
,>
和>=
比较遵循词典排序惯例;内容是成对比较的,结果是基于两个序列之间不同的第一个值。
按字母顺序排序,您的左侧列表在右侧(6 == 6
之前,然后7 < 8
)排序,因此序列的结果完全正确。