0

我有一个列表,其中包含我使用 Beautiful Soup 从 html 页面中提取的许多元素。在这个列表中,我有许多具有相同子字符串的元素,我想提取包含该子字符串的每个元素。

我的清单如下所示:

[
u'File:Saddam Hussein (107).jpg',
u'Template:Fn (page does not exist)',
u'Template:Fn (page does not exist)',
u'Template:Fn (page does not exist)',
u'Template:Fn (page does not exist)',
u'Template:Fn (page does not exist)',
u'File:AlBakr.jpg',
... (and so on) ...
]

我想删除具有字符串“(页面不存在)”的元素。

关于我如何做到这一点的任何想法?

4

2 回答 2

2

使用列表推导:

>>> lis = [u'File:Saddam Hussein (107).jpg', u'Template:Fn (page does not exist)', u'Template:Fn (page does not exist)', u'Template:Fn (page does not exist)', u'Template:Fn (page does not exist)', u'Template:Fn (page does not exist)', u'File:AlBakr.jpg', u'Template:Fn (page does not exist)', u'File:Chiracsaddam.jpg', u'File:Donald saddam.jpg', u'Template:Fn (page does not exist)', u'File:SaddamandCuellar.jpg.jpg', u'Template:Fn (page does not exist)', u'Template:Fn (page does not exist)', u'File:SaddamBaghdadwalkabout.jpg', u'Template:Fn (page does not exist)', u'Template:Fn (page does not exist)', u'Template:Fn (page does not exist)', u'Kurdish Patriotic Front (page does not exist)', u'File:TrialSaddam.jpg', u'Mohammad Rashdan (page does not exist)', u'Emmanuel Ludot (page does not exist)', u'Marc Henzelin (page does not exist)', u'Adnan Khairallah Tuffah (page does not exist)', u'Nidal al-Hamdani (page does not exist)', u'Ali Hussein (page does not exist)', u'File:SaddamandRana.jpg.jpg', u'Saddam Kamel Majid (page does not exist)', u'Template:Fn (page does not exist)', u'Template:Fnb (page does not exist)', u'Template:Fnb (page does not exist)', u'Template:Fnb (page does not exist)', u'Template:Fnb (page does not exist)', u'Template:Fnb (page does not exist)', u'Template:Fnb (page does not exist)', u'Template:Fnb (page does not exist)', u'Template:Fnb (page does not exist)', u'Template:Fnb (page does not exist)', u'Template:Fnb (page does not exist)', u'Template:Fnb (page does not exist)', u'Template:Fnb (page does not exist)', u'Template:Fnb (page does not exist)']

如果要修改原始列表:

>>> lis[:] = [item for item in lis if "(page does not exist)" not in item]

或者创建一个新列表:

new_lis = [item for item in lis if "(page does not exist)" not in item]
于 2013-06-25T17:50:43.933 回答
0
>>> for i in range(len(l)-1, 0, -1):
...    if l[i].find('(page does not exist)') > -1:
...       del (l[i])
...
>>> l
[u'File:Saddam Hussein (107).jpg']
>>>
于 2013-06-25T17:55:00.787 回答