簡體   English   中英

Python刪除列表中的元素

[英]Python remove element in list

我有個問題

說我有兩個列表,每個列表包含幾個字符串

a = ['x', 'y', 'z', 't'] b = ['xyz', 'yzx', 'xyw']

我想刪除列表b中的xyw ,因為w不在列表a

我試過了

for s in a:
    k = [t for t in b if t.find(s)]

但這沒有用。有人知道如何在Python中執行此操作嗎? 謝謝!

您可以檢查每個字符串中的所有字母是否都包含在列表中a然后使用列表推導過濾掉字符串。

>>> a = ['x', 'y', 'z']
>>> b = ['xyz', 'yzx', 'xyw']
>>> [i for i in b if all(j in a for j in i)]
['xyz', 'yzx']
>>> a = ['x', 'y', 'z']
>>> b = ['xyz', 'yzx', 'xyw']
>>> for element in b:
...     if not all(i in a for i in element):
...         b.remove(element)
... 
>>> b
['xyz', 'yzx']
>>> 

更正:我不應該在迭代期間刪除。 因此,遵循上述解決方案

>>> a = ['x', 'y', 'z']
>>> b = ['xyz', 'yzx', 'xyw']
>>> b = [i for i in b if all(j in a for j in i)]
>>> b
['xyz', 'yzx']
>>>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM