我正在尝试编写一个通用程序,以查看列表B是否包含在更大的列表A中,但是我无法在下面的代码中返回True
,如果这是情况下。
n = len(A)
m = len(B)
any( B == A[j:j+m-1] for j in range(n-m+1) )
非常感谢任何帮助!
答案 0 :(得分:4)
切片L[a:b]
的长度为b-a
,这就是Python切片之美(独占最后一个元素)。
因此A[j:j+m-1]
的长度为m-1
,因此它不能等于B
,因为其长度为m
。
答案 1 :(得分:2)
此A[j:j+m-1]
会返回比B短1的列表。将其更改为A[j:j+m]