在Python中创建条件,弹出没有开始的所有内容

时间:2018-11-19 03:31:11

标签: python list slice

因此,我正在尝试在python中创建一个循环,如果它不是以> \ n开头的话,它将从列表中弹出一个元素,如下所示

">\n Item"

这是我到目前为止的代码

for i in clean:
    if ((clean[i])[0:2]) != (">\n"):
        clean.pop[i]

所有元素都是字符串,并且出现TypeError:字符串索引必须为整数

我觉得我缺少明显的东西。

1 个答案:

答案 0 :(得分:0)

如果cleanlist,则for i in clean将遍历cleani elements 而不是索引。另外,pop是一个函数,而不是列表或字典,不能在其上使用方括号。另外,在遍历列表时从列表中删除元素也是不明智的,因为在迭代器朝另一个方向前进的同时,您会跳过某些元素,因为它们会同时向前端移动。因此,您更正后的代码可能是:

for i in range(len(clean) - 1, -1, -1):
    if clean[i][0:2] != ">\n":
        clean.pop(i)

如果您仅使用理解来创建新列表,就会更容易:

clean = [line for line in clean if line.startswith(">\n")]