私は別のストップリストで1つのリストをフィルタリングする素晴らしいpythonic方法を探していますが、最初に2番目のリストから部分文字列を一致させたい。私は、URLのリスト1を持っているし、好きLIST2::。具体的には別のストップワード(部分文字列)の別のリストで、pythonのフィルタリスト
['microsoft.com', 'ibm.com', 'cnn', '.ru'] etc
URLの最初のリストは、第二のリストは、500〜1000のような、小さい、(項目の何千もの)巨大です。しかし、2番目のリスト項目は部分文字列検索として使用する必要があるため、 "in"またはセットを使用した単純一致は十分ではありません。 私が考えることができるのは2つの "for"ループですが、Pythonでは見えません:)
PS目的は最初のリストから一致する項目を削除することです。
数千人は特に巨大ではありません。数十万人が巨大化している。 – MattH
にはまだ時間がかかります。 たとえば、2000/2000のリストでは、単純な完全な文字列の一致に秒がかかります。 >>> list1 = filter(lambda x:x.lower()はリスト2、リスト1にありません) しかし、部分文字列をチェックする必要があります。 filter()のような効果的な方法を見つける... – alex29
あなたのフィルタリストを拘束することはできますか?あなたの例のうち、「endswith」ではない人は1人だけです。 – MattH