我有以下测试代码。
a = ['a', 'b', 'c', 'd', 'e']
c = a * 3
b = a
但b in c
返回False。 b是c的子序列,列表c包含b。那为什么它会返回假?
提前致谢。
答案 0 :(得分:5)
b in c
不起作用,因为b看起来像:
['a', 'b', 'c', 'd', 'e']
和c看起来像:
['a', 'b', 'c', 'd', 'e', 'a', 'b', 'c', 'd', 'e', 'a', 'b', 'c', 'd', 'e']
换句话说,b不是序列的元素。相反,b是一个子序列。如果你按如下方式构建c:
c = [a, a, a]
然后c看起来像:
[['a', 'b', 'c', 'd', 'e'], ['a', 'b', 'c', 'd', 'e'], ['a', 'b', 'c', 'd', 'e']]
“b in c”将返回True。
希望这有帮助。
答案 1 :(得分:0)
如果您有此代码:
a = ['a', 'b', 'c', 'd', 'e']
c = [a] * 3
b = a
当您输入b in c
时,您将获得True
。
在这种情况下
c = [a] * 3
(围绕a的[]
将返回:
[['a', 'b', 'c', 'd', 'e'], ['a', 'b', 'c', 'd', 'e'], ['a', 'b', 'c', 'd', 'e']]