2017-08-28 23 views
3

部分文字列のリストがリストに含まれているかどうかを調べたいと思います。Pythonの文字列リストの部分文字列リスト

string_list = ['item1', 'item2', 'subject3', 'subject4'] 

を、私は「アイテム」または「対象」がSTRING_LISTのいずれかの項目に含まれている場合は検索したい部分文字列

substrings = ['item', 'subject'] 

のリスト:たとえば、私が持っています。

any('item' in x for x in string_list) 

これは、1つのサブのために動作しますが、私は部分文字列のリストで、両方の文字列を検索するのはかなりの方法を見つけるしたいと思います:個別に、私のような何かをするだろう。

+1

あなたは 'aもっと複雑なジェネレータ表現を書いてクロス積を作るか、 'itertools.product'を使ってそれを行います。 – jonrsharpe

+0

あなたの期待する結果は? 'string_list'が' substring'アイテムで始まるマッチ、または完全一致を望みますか? – Alexander

+0

私は、文字列のリストに部分文字列の文字列が含まれているかどうかの真偽を欲しいと思います。 –

答えて

2
any(y in x for x in string_list for y in substrings) 
1

部分文字列が開始時に実際にあるので、あなたは接頭辞のタプルを取ることができstr.startswithを使用することができます。

any(x.startswith(('item', 'subject')) for x in string_list) 
1

あなたがこの試すことができます:

string_list = ['item1', 'item2', 'subject3', 'subject4'] 

substrings = ['item', 'subject'] 

any(any(b in i for b in substrings) for i in string_list) 

出力を:

True 
関連する問題