-1
私はfind
でいくつかの奇妙な動作が発生しました。部分文字列を検索するとき、その部分文字列が検索している文字列の先頭にある場合(部分文字列はインデックス0から始まります)、見つからないでしょう。文字列に空白文字を1つ埋め込むと(部分文字列がインデックス1から始まるように)、機能を見つけ出し、期待どおりに動作します。 find
を間違って使用していますか?Python find()は文字列の先頭に部分文字列を見つけることができません
my_string = "hello world"
searches = ["hello",
"world",
]
# Search the string for the two substrings
for search in searches:
if my_string.find(search):
print("Found", search)
else:
print("Did not find", search)
# Did not find hello
# Found world
# Try padding the string, so substring 'hello' is not at the very beginning
my_padded_string = " " + my_string
for search in searches:
if my_padded_string.find(search):
print("Found", search)
else:
print("Did not find", search)
# Found world
# Found hello
はsearches
リスト内のサブストリングの順序は重要ではしていないように注意してください。
私はPython 3.6.0 :: Anaconda 4.3.0(64-bit)を使用しています。
返しますfalseyあるインデックス0を、見つける、あなたはそれを返すかどうかを確認する必要が-1つまり、あなたが使用することができます –
が見つかりません:
あなた
if
文は次のように読んでください'search in my_string' – Anoopあなたのテストは' if my_string.find(search)> = 0'でなければなりません。 –