首页 > 解决方案 > 在 Python 中根据条件删除行

问题描述

我正在尝试从列表中排除符合特定条件的行。例如,以“C”而不是数字开头的标识符。我能够看到所有符合此条件的行,但我不确定如何删除/排除这些行。

我知道.remove()会起作用,但我没有正确调用列表。

#!/usr/bin/env python
import sys
import re
import csv


def main(argv):
    my_iterator = iter(sys.stdin.readline, "")
    next(my_iterator)

    for row in csv.reader(my_iterator):
        my_list = my_iterator

        #Delete rows that have InvoiceNo that start with C
        if re.match(r'C', row[0]):
            my_list.remove()
            print("yes")

标签: python-3.x

解决方案


仅当第一列不以以下开头时,您才能使循环在列表中追加一行'C'

my_list = []
for row in csv.reader(my_iterator):
    if not row[0].startswith('C'):
        my_list.append(row)

推荐阅读