这个in用法是错误的吗?
a = {1,2,3}b = {3,4,5}
print(b in a)
输出了false
我理解的是 b包含3 a也包含3,应该输出True 本帖最后由 tommyyu 于 2022-10-19 12:34 编辑
in 不是判断集合与集合之间是否互相包含,而是判断集合中是否有这个元素,以列表举一个例子:>>> 1 in
True
>>> in
False
>>> in ]
True
判断集合和集合之间的关系 --> 传送门
b in a 是判断 a 中是否含有 b ,你的 b 为 {3, 4, 5},而 a 中没有 {3, 4, 5} 这个集合,所以返回 False
如果你想实现返回 True,应该这样写:
b = {3, 4, 5}
a = {1, 2, 3, frozenset(b)}
print(b in a)
Python 因为集合的唯一性,只能加入不可变数据类型,而 forzenset 可以冻结集合
也就是将 集合变为不可变的数据类型,这样进行嵌套入集合中去,再 用 in 进行判断即可
Twilight6 发表于 2022-10-19 12:44
b in a 是判断 a 中是否含有 b ,你的 b 为 {3, 4, 5},而 a 中没有 {3, 4, 5} 这个集合,所以返回 False ...
竟然还有forzenset这样的操作,我的教程不知道是没有还是后面才有,才到集合基础部分
页:
[1]