我有两个清单。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']
慕沐林林
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']
慕仙森
TA贡献1827条经验 获得超8个赞
为什么不:
print([' '.join(set(i.split()).difference(set(x))) for i in y])
输出:
['george', 'sam', 'ricky', 'donald']
添加回答
举报
0/150
提交
取消
