为什么不能使用'in'来测试一个列表是否是另一个列表的子集?

J A*_*kin 0 python python-3.x

我正在阅读学习Python,刚刚完成了关于列表的部分.当我在玩耍时看看我能用它们做些什么时,我发现了一些奇怪的东西:

[2, 3] in [1, 2, 3, 4] == False
Run Code Online (Sandbox Code Playgroud)

您无法使用in关键字测试列表子集.为什么会这样?

Dan*_*Dan 8

[2,3] `is not in` [1,2,3,4]

[2,3] `is in` [1, [2,3] ,4]
Run Code Online (Sandbox Code Playgroud)

2和3是列表中的元素,但列表[2,3]不是列表中的元素.


ILo*_*oon 6

这是因为[2, 3],其实不是[1, 2, 3, 4].

要测试子集,请使用模块中的issubset功能sets.

a = [2, 3]
b = [1, 2, 3, 4]

set(a).issubset(set(b))
Run Code Online (Sandbox Code Playgroud)