文字列が互いに部分文字列であるかどうかをチェックする簡単なプログラムを書いた。問題は、範囲外のリストインデックスを取得し続けることです。インデックスが範囲外になっていても表示されない
各繰り返しでiとjを印刷しようとしましたが、決してリストの境界から外れません。私はインデックスをチェックするためにs [5]とs [6]に要素を挿入しようとしましたが、同じエラーが発生しました。このエラーの原因は何ですか?
s = []
s.insert(0,str("a b c"))
s.insert(1,str("a b c d"))
s.insert(2,str("a b"))
s.insert(3,str("b c"))
s.insert(4,str("d"))
j = 0
i = 0
while j < 5:
if s[j] in s[i]:
print("\"" + s[j] + "\" is in the string \"" + s[i] + "\"")
i +=1
if i == 5 and j < 4:
j+=1
i=0
これは私のコンソール出力
Traceback (most recent call last):
"a b c" is in the string "a b c"
File "C:/Users/Kal/PycharmProjects/untitled/FSS2.py", line 16, in <module>
"a b c" is in the string "a b c d"
if s[j] in s[i]:
"a b c d" is in the string "a b c d"
IndexError: list index out of range
"a b" is in the string "a b c"
"a b" is in the string "a b c d"
"a b" is in the string "a b"
"b c" is in the string "a b c"
"b c" is in the string "a b c d"
"b c" is in the string "b c"
"d" is in the string "a b c d"
"d" is in the string "d"
Process finished with exit code 1
リストの最後に追加するには、単に「.append」する必要があることに注意してください。 – jonrsharpe
'print(i、j)'はあなたのループの始めにはっきりしています。あなたは 'i == 4とj <4:'ならどうかチェックしなければなりません –
@PadraicCunningham私はそのチェックを使ってみましたが、まだ同じエラーが出ます – user6912880