Python删除lis中的元素

2024-05-14 19:08:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有个问题

假设我有两个列表,每个列表包含两个字符串

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中做到这一点吗?谢谢您!你知道吗


Tags: 字符串in列表foriffindxyzyzx
2条回答
>>> 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']
>>>

您可以检查每个字符串中的所有字母是否都包含在您的列表中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']

相关问题 更多 >

    热门问题