我有兩個清單。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.join
with :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
提交
取消