来自< =在python中的输出很奇怪

时间:2014-04-09 14:52:35

标签: python list set

>>> [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

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

1 个答案:

答案 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)排序,因此序列的结果完全正确。