因此,我正在尝试在python中创建一个循环,如果它不是以> \ n开头的话,它将从列表中弹出一个元素,如下所示
">\n Item"
这是我到目前为止的代码
for i in clean:
if ((clean[i])[0:2]) != (">\n"):
clean.pop[i]
所有元素都是字符串,并且出现TypeError:字符串索引必须为整数
我觉得我缺少明显的东西。
答案 0 :(得分:0)
如果clean
是list
,则for i in clean
将遍历clean
中i
的 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")]