リストBが大きなリストAに含まれているかどうかを確認する一般的なプログラムを作成しようとしていますが、これは私のプログラムでTrue
場合。Pythonエラー - リスト
n = len(A)
m = len(B)
any(B == A[j:j+m-1] for j in range(n-m+1))
ご協力いただければ幸いです。
リストBが大きなリストAに含まれているかどうかを確認する一般的なプログラムを作成しようとしていますが、これは私のプログラムでTrue
場合。Pythonエラー - リスト
n = len(A)
m = len(B)
any(B == A[j:j+m-1] for j in range(n-m+1))
ご協力いただければ幸いです。
にスライスL[a:b]
の長さを変更より1本A[j:j+m-1]
戻りリスト短いはそれがPythonのスライス(排他最後の要素)の美しさ、b-a
あります。
したがって、A[j:j+m-1]
の長さはm-1
なので、長さがm
であるので、B
と同じにすることはできません。
ああにこのコードの構文エラーが届かないが、簡単だったそれを得た - !おかげで今動作しますが、また、我々は範囲のためのn-M + 1を使用する必要がなぜ不思議?私は、最後に呼ばれた「j」がn-mであると言っているのでしょうか?これは、リストA [N-M:n]のチェックを意味= B最後の - Aの最後おそらく定義M長サブリストであるが[N-M-1:N-1]。しかし、この理論のバックプログラムエラーに私は1 – T132
T132によって範囲を減少させた場合:mが1である場合、あなたはすべての可能な1文字の部分文字列を入力して試してくださいする必要があり、それは正確に文字列A [J:J]です範囲(n)からのjである。部分文字列が1より長い場合にのみ、あなたが見る必要がないことを知っているいくつかのインデックスがあります。 – RemcoGerlich
おかげさまで、ありがとうございました! – T132
B.がA[j:j+m]
私は、Python 3.5 – ForceBru