我正在尝试从列表中排除符合某些条件的行。例如,以“ 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")
答案 0 :(得分:0)
仅当第一列不是以'C'
开头时,才可以使循环将行追加到列表中:
my_list = []
for row in csv.reader(my_iterator):
if not row[0].startswith('C'):
my_list.append(row)
答案 1 :(得分:0)
您可以在此处利用列表理解和startswith()
来建立新列表;
my_list = [row for row in csv.reader(my_iterator) if not row[0].startswith('C')]