从列表中删除项-Python

从列表中删除项-Python,python,list,Python,List,我正在从当地监狱网站抓取数据。我正在尝试从列表中删除除费用之外的所有元素。我要废除所有的法令、契约等 以下是我尝试过的: charges = [[], ['13A-12-214.1'], ["ECSO (ETOWAH COUNTY SHERIFF\\'S OFFICE)"], ['SALVIA MISD POSS'], [''], ['M'], ['$1000.00'], [], [], ['13A-10-41'], ["ECSO (ETOWAH COUNTY SHERIFF\\'S OFFIC

我正在从当地监狱网站抓取数据。我正在尝试从列表中删除除费用之外的所有元素。我要废除所有的法令、契约等

以下是我尝试过的:

charges = [[], ['13A-12-214.1'], ["ECSO (ETOWAH COUNTY SHERIFF\\'S OFFICE)"], ['SALVIA MISD POSS'], [''], ['M'], ['$1000.00'], [], [], ['13A-10-41'], ["ECSO (ETOWAH COUNTY SHERIFF\\'S OFFICE)"], ['RESISTING ARREST'], [''], ['M'], ['$1000.00'], [], [], ['32.5A.88'], ["ECSO (ETOWAH COUNTY SHERIFF\\'S OFFICE)"], ['IMPROPER LANE USAGE'], [''], ['U'], ['$500.00'], [], [], [''], [''], ['DET FOR COMM CORR'], [''], ['U'], ['$0.00'], [], [], ['<tr>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t        <td class="SearchHeader" colspan="2">']]

    for string in charges:
        if string == arrestedBy:
            charges.remove(string)
        elif string.isalpha() == False:
            charges.remove(string)
        elif len(string) < 2:
            charges.remove(string)

if charges[-1] == '<tr>\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t        <td class="SearchHeader" colspan="2">':
    charges.remove(charges[-1])

charges = filter(None, charges)

charges = str(charges)
我想要的是:


“Salvia Masd POSs,拒捕,不正确的车道使用,COM CORR的DET”

< P>如果您不能限制在刮取时要收取的费用,请考虑,而不是在列表中重复并删除元素(不明智),使用Python列表理解。p> 例如,如果定义的某个函数
是\u charge
,它包含定义费用的逻辑并返回布尔值:

charges = [i for i in charges if is_charge(i)]

如果你不能限制你在刮取时要收取的费用,考虑一下,而不是在列表中迭代并删除元素(这是不明智的),使用Python列表理解。p> 例如,如果定义的某个函数

是\u charge
,它包含定义费用的逻辑并返回布尔值:

charges = [i for i in charges if is_charge(i)]

不要从您正在迭代的列表中删除元素,如何查找费用?如果您是从html获得这些信息的,那么在将元素添加到列表之前,您可能早就可以进行筛选。从正在迭代的列表中删除项目通常是危险的,因为使用BeautifulSoup的html。我抓取具有特定属性的标记,将它们剥离,然后将它们附加到列表中。如果你不从你正在迭代的列表中删除元素,你如何找到费用?如果您是从html获得这些信息的,那么在将元素添加到列表之前,您可能早就可以进行筛选。从正在迭代的列表中删除项目通常是危险的,因为使用BeautifulSoup的html。我抓取具有特定属性的标记,将它们剥离,然后将它们附加到列表中。如果你不从你正在迭代的列表中删除元素,你如何找到费用?如果您是从html获得这些信息的,那么在将元素添加到列表之前,您可能早就可以进行筛选。从正在迭代的列表中删除项目通常是危险的,因为使用BeautifulSoup的html。我抓取具有特定属性的标记,将它们剥离,然后将它们附加到列表中。它抓住了我不想要的东西。你能用我上面的逻辑给我举个例子吗?@peterppe在你的
for
循环中,你在根据
字符串==arrestedBy
字符串.isalpha()
,评估列表中的项目,等等-如果您将这些项移动到一个函数,当字符串与电荷特征匹配时返回
True
,您可以保留这些列表项并删除其他项。您可以使用上面的逻辑给我一个例子吗?@peterppe在
for
循环中,您正在根据
string==arrestedBy
string.isalpha()
,等等对列表中的项目进行评估-如果您将这些项目移动到一个函数,该函数在字符串与电荷特征匹配时返回
True
,您可以保留这些列表项并删除其他项。您可以使用上面的逻辑给我一个示例吗?@peterppe在您的
for
循环中,您正在根据
字符串==arrestedBy
字符串.isalpha()
,对列表中的项进行评估,等等-如果将这些项移动到一个函数,当字符串与电荷特征匹配时返回
True
,则可以保留这些列表项并删除其他项。