我有以下测试代码.
a = ['a', 'b', 'c', 'd', 'e']
c = a * 3
b = a
Run Code Online (Sandbox Code Playgroud)
但b in c返回False.b是c的子序列,列表c包含b.那为什么它会返回虚假?
提前致谢.
小智 5
b in c
Run Code Online (Sandbox Code Playgroud)
不起作用,因为b看起来像:
['a', 'b', 'c', 'd', 'e']
Run Code Online (Sandbox Code Playgroud)
和c看起来像:
['a', 'b', 'c', 'd', 'e', 'a', 'b', 'c', 'd', 'e', 'a', 'b', 'c', 'd', 'e']
Run Code Online (Sandbox Code Playgroud)
换句话说,b不是序列的元素.相反,b是一个子序列.如果你要按如下方式构造c:
c = [a, a, a]
Run Code Online (Sandbox Code Playgroud)
然后c看起来像:
[['a', 'b', 'c', 'd', 'e'], ['a', 'b', 'c', 'd', 'e'], ['a', 'b', 'c', 'd', 'e']]
Run Code Online (Sandbox Code Playgroud)
并且"b in c"将返回True.
希望这可以帮助.