Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中从列表中删除包含单词的项_Python_Web Scraping - Fatal编程技术网

如何在python中从列表中删除包含单词的项

如何在python中从列表中删除包含单词的项,python,web-scraping,Python,Web Scraping,我有一张单子 a = ['https://example.co/embed/qACAB6TukkU/The.Ha-az.VOST.WEBRip.XviD-ZT.W.avi', 'https://example.co/embed/l31lsZilT2E/The.Ha-az-ndmaids.FR.HDTV.XviD-ZT.W.avi', 'https://example.com/embed/soslnnqnmccmplfa/The_Ha-az02_VOST_WEBRip_XviD

我有一张单子

a = ['https://example.co/embed/qACAB6TukkU/The.Ha-az.VOST.WEBRip.XviD-ZT.W.avi',
     'https://example.co/embed/l31lsZilT2E/The.Ha-az-ndmaids.FR.HDTV.XviD-ZT.W.avi',
     'https://example.com/embed/soslnnqnmccmplfa/The_Ha-az02_VOST_WEBRip_XviD-ZT_W_avi',
     'https://example.com/embed/pffpmptfpdfqddap/The_Ha-az-_Tale_S2_FRENCH_HDTV_XviD-ZT_W_avi']
我想删除该列表中链接中包含单词“VOST”的所有项目。这就是我所知道的和我所尝试过的:

a.remove('VOST')
print a

您可以尝试遍历每个项目,并使用
列表理解功能对其进行过滤

filtered = [i for i in a if 'VOST' not in i]
上述代码与以下代码类似且更好:

filtered = []
for i in a:
    if 'VOST' not in i:
        filtered.append(i)

如果要使用
删除
,可以迭代每个项目,检查要查找的单词是否在项目中,然后删除项目。您可以尝试以下代码:

注意:这将从原始列表中删除该项目,前面的答案将创建名为
筛选的新列表

for i in a:
    if 'VOST' in i:
        a.remove(i)

您可以尝试遍历每个项目,并使用
列表理解功能对其进行过滤

filtered = [i for i in a if 'VOST' not in i]
上述代码与以下代码类似且更好:

filtered = []
for i in a:
    if 'VOST' not in i:
        filtered.append(i)

如果要使用
删除
,可以迭代每个项目,检查要查找的单词是否在项目中,然后删除项目。您可以尝试以下代码:

注意:这将从原始列表中删除该项目,前面的答案将创建名为
筛选的新列表

for i in a:
    if 'VOST' in i:
        a.remove(i)

我是一个初学者,但我认为使用a.remove是行不通的,因为从列表中删除一个项目会破坏未来项目的索引。创建一个新列表并附加不包含“VOST”的项目是一个更好的解决方案。

我是一个初学者,但我认为使用a.remove不起作用,因为从列表中删除一个项目会破坏未来项目的索引。创建一个新列表并附加不包含“VOST”的项是更好的解决方案。

如果您确实希望就地删除项,则以下操作可能适用于您:

for i in [i for i, v in enumerate(a) if 'VOST' in v][::-1]:
    del a[i]
或者

for i in reversed([i for i, v in enumerate(a) if 'VOST' in v]):
    del a[i]
或者


如果您确实希望就地删除项目,则以下操作可能适用于您:

for i in [i for i, v in enumerate(a) if 'VOST' in v][::-1]:
    del a[i]
或者

for i in reversed([i for i, v in enumerate(a) if 'VOST' in v]):
    del a[i]
或者

怎么样

filter(lambda x: "VOST" not in x, a)
怎么样

filter(lambda x: "VOST" not in x, a)

可能重复的可能重复的一个实际上可以删除项目的地方-见我的答案。你只需要按相反的顺序进行迭代,你实际上可以在适当的位置删除项目——见我的答案。您只需要以相反的顺序进行迭代。