通过比较两个列表来删除特定单词

我有两个清单。

x=['billed_qty','billed_amt','sale_value']
y=['george billed_qty', 'sam billed_amt', 'ricky sale_value', 'donald billed_qty']

我需要消除列表 y 中出现在列表 x 中的单词,并希望结果列表为:

z=['george','sam','ricky','donald']

我怎样才能做到这一点?


喵喵时光机
浏览 242回答 3
3回答

桃花长相依

regex与 一起使用list comprehension:comp = re.compile('|'.join(x))z = [re.sub(comp, '', i).strip() for i in y]print(z)['george','sam','ricky','donald']

慕沐林林

在列表推导中使用str.joinwith :str.splitz = [' '.join(w for w in s.split() if w not in x) for s in y] print(z)输出:['george', 'sam', 'ricky', 'donald']

慕仙森

为什么不:print([' '.join(set(i.split()).difference(set(x))) for i in y])输出:['george', 'sam', 'ricky', 'donald']
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python