为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

喵喵时光机 2022-03-09 21:25:11
我有两个清单。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']我怎样才能做到这一点?
查看完整描述

3 回答

?
桃花长相依

TA贡献1860条经验 获得超8个赞

regex与 一起使用list comprehension:


comp = re.compile('|'.join(x))

z = [re.sub(comp, '', i).strip() for i in y]


print(z)

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


查看完整回答
反对 回复 2022-03-09
?
慕沐林林

TA贡献2016条经验 获得超9个赞

在列表推导中使用str.joinwith :str.split

z = [' '.join(w for w in s.split() if w not in x) for s in y]
print(z)

输出:

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


查看完整回答
反对 回复 2022-03-09
?
慕仙森

TA贡献1827条经验 获得超8个赞

为什么不:

print([' '.join(set(i.split()).difference(set(x))) for i in y])

输出:

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


查看完整回答
反对 回复 2022-03-09
  • 3 回答
  • 0 关注
  • 240 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号