シナリオ:
リストがあります:
['item','place','thing']
そして、私はいくつかの文字列を持っています:
"item", "item1", "thing55", "place_C", "stuff", "junk5"
上記のうち、最初の 4 つが一致し、最後の 2 つが一致しないようにします。このチェックには、startswith 関数が最適です。
(テスト文字列 "item"、"item1" などのリストは Python リストではありません。これは、チェックされるサンプル データのセットにすぎません。ただし、"item"、"place" と照合する文字列のリストは、 、「もの」はコード内の python リストです。)
最初のリストを反復処理して、文字列を startswith と比較できます。
successVar = False
for s in myStrings:
if (testString.startswith(s)):
successVar = True
break
# Now you would check successVar to decide if string matched
しかし、これは必ずしもすべてのケースで最適に機能するとは限りません。たとえば、これが if/elif 構造の一部であるとします。
if (testString == "hello"):
# do something based on exact string match
elif (testString.endswith("!")):
# do something if string ends with _one_ specific entity
elif <somehow, do the above comparison in here>
# do something if string starts with any of the items in a list
else:
# do something if string didn't match anything
チェック全体を関数内にラップすることもできると思いますが、インライン コードでこれをより簡単に、またはより簡潔に行う方法があるように感じます。
これは、関数を作成せずに行うことさえ可能ですか?
ありがとう