[英]Comparing the items of two lists in Python
我閱讀了許多有關相關問題的問題,但沒有一個回答我的問題。 我有兩個清單:
List A = ['nike', 'adidas', 'reebok']
List B = ['sneakers', 'sneaker shoes', 'adidas shoes', 'nike', 'any shoe', 'all nikes', 'a nike shoe']
現在,我想看看列表A的項目是否存在於B的某處,以便返回:
List result: [False, False, True, True, False, True, True]
True表示列表B中與A項匹配的實例。 到目前為止,我已經使用了這段效率極低的代碼。
for j in range(len(lista)):
for k in b:
if j in k:
lista[j] = 'DELETE'
cuent = lista.count('DELETE')
for i in range(cuent):
lista.remove('DELETE')
在此先感謝,如果確實有答案,對不起-一個小時后,我失去了在stackoverflow-universe中找到它的所有希望:)
編輯:對不起,我自己說不清楚-我不是在尋找完全匹配的內容,我正在尋找詞組匹配的內容。 再次抱歉!
也許
keywords = ['nike', 'adidas', 'reebok']
items = ['sneakers', 'sneaker shoes', 'adidas shoes', 'nike', 'any shoe', 'all nikes', 'a nike shoe']
bits = [any(keyword in item for keyword in keywords) for item in items]
或更好
import re
regex = re.compile(r'%s' % '|'.join(keywords))
bits = [bool(regex.search(x)) for x in items]
據我了解,您想忽略單詞邊界(例如,“ nike”匹配“ all nikes”),僅搜索完整單詞,將上述表達式更改為r'\\b(%s)\\b'
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.