来自<= in python的输出很奇怪

kev*_*vin 3 python list set

>>> [6,7,8,16,18] <= [6,8,11,13,17]
True
Run Code Online (Sandbox Code Playgroud)

<=如果True左集中的每个元素都在右集中,则应返回.但7,16,18不在正确的名单中.即使我把数字放在这样的集合中

>>> (6,7,8,16,18) <= (6,8,11,13,17)
True
Run Code Online (Sandbox Code Playgroud)

https://docs.python.org/2/library/sets.html

Mar*_*ers 13

您正在使用列表和元组,而不是集合.使用{...}了集文字:

>>> {6, 7, 8, 16, 18} <= {6, 8, 11, 13, 17}
False
Run Code Online (Sandbox Code Playgroud)

或使用set([...])frozenset([...]).设置文字语法仅适用于Python 2.7和3.x.

列表和元组不支持set操作.取而代之的是,<,<=,>>=比较遵循按字典序进行约定; 内容是成对比较的,结果是基于两个序列之间不同的第一个值.

按字典顺序排序,您的左侧列表在右侧(6 == 6然后7 < 8)之前排序,因此序列的结果完全正确.