有什麼好的Python的方式來子列表匹配的字符串列表,像下面這樣:匹配列表
if 'sub1' in str1 or 'sub2' in str1 or ... 'subN' in str1 or\
'sub1' in str2 or 'sub2' in str2 or ... 'subN' in str2 or\
...
'sub1' in strM or 'sub2' in strM or ... 'subN' in strM:
一種方法是使他們團結起來列表理解,如下所示:
strList = [str1, str2, ..., strM]
subList = ['sub1', ..., 'subN']
if any(sub in str for sub in subList for str in strList):
有什麼更好的,像庫函數可能吸收其中一個維度?
非常感謝。
如果字符串足夠短(而不是太多),你可以撰寫他們爲正則表達式:'SUB1 | SUB2 | SUB3 | ... | subN' – alexis
根據串的數量和大小,將所有'str [1..n]連接成一個大的字符串,然後使用正則表達式或'any(... in ...)'檢查一次子字符串可能會更快。 –
@TimPietzcker這是一個有趣的想法。但是我的具體情況的優點是子串是靜態的,而字符串是動態的,所以我可以預先計算子串RE一次並在整個地方使用它。但這還是很原始的,非常感謝。 – gt6989b