2017-09-18 5 views
1

Regular expressionの助けを借りなくても、リストの特定の文字列を見つけることができますか?つまり、特定の検索ですべてのケースを検索します。リストから好きな文字列を探す

、私が何を意味するのかを確認するには、この下のスクリプトを見てみてください。

container = ['meet me','Meet Me','Say Hi','say hi','MEET ME','SAY HI'] 
for item in container: 
    if 'meet' in item: 
     print(item) 

結果は、私がいる:私は希望

meet me 

結果が持っている:

meet me 
Meet Me 
MEET ME 
+4

文字列に '.lower()'を実行するだけです。 – Akavall

+2

'もし 'meet'がitem.lower()の場合: –

+0

多少の関連性:https://stackoverflow.com/questions/46285510/filter-strings-in-a-for-loop-by-list-of-words- for-reddit-bot –

答えて

4

+0

あなたの答えはMattRに感謝します。それは私が期待どおりに動作します。残念ながら、私は10分前に答えとしてそれを受け入れることはできません。 – SIM

0

do item.lower()。これは、比較する場合を無視します。 Akavallコメントで述べたと同様

container = ['meet me','Meet Me','Say Hi','say hi','MEET ME','SAY HI'] 
for item in map(lambda s: s.lower(), container): 
    if 'meet' in item: 
     print(item) 
1

あなたのような何かを試みることができます。単純に:

container = ['meet me','Meet Me','Say Hi','say hi','MEET ME','SAY HI'] 
for item in container: 
    if 'meet' in item.lower(): 
     print(item) 

これは、すべての文字列を小文字に変換します。したがって、会うのすべての種類など(MEET、MEET、MEET)は、「会う」に変換されます逆に、あなたのif声明

の条件を満足するであろう、あなた、あなたがそう望むならif 'MEET' in item.upper()を行うことができます。ここでstr.lower()

+1

'map'を' lambda'ですぐに起動しないでください。使用する機能がまだない場合は、発電機の理解度を使用してください。 –

+0

代わりに 'map(str.lower、container)'を実行することができます –

+0

これは、元のアイテムではなく小文字のバージョンを表示することに注意してください –

0

上のドキュメントは念を無視し、その後、必要なマッチを作るためにitem.lower()に設定されている:

container = ['meet me','Meet Me','Say Hi','say hi','MEET ME','SAY HI'] 
for item in container: 
    if 'meet' in item.lower(): 
     print(item) 
2

は理解して、私の2セントを追加します。

filtered = [s for s in container if 'meet' in s.lower()] 
+0

この種の回答からさらに多くの情報が必要 – Manu

関連する問題