python-3.x - 在 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")
解决方案
仅当第一列不以以下开头时,您才能使循环在列表中追加一行'C'
:
my_list = []
for row in csv.reader(my_iterator):
if not row[0].startswith('C'):
my_list.append(row)
推荐阅读
- c++ - 如何在 C++ 中实现一个函数作为一些可选参数?
- sql - 我们如何将外部表从一个模式复制到同一个 postgresql 数据库中的另一个模式
- kubernetes - 高负载下的 Kube Cluster 连接外部服务时出现超时错误
- c - 应该检查非数字的代码在 c 中不起作用
- python - 我无法将我的 Discord Python BOT 连接到语音通道,为什么?
- c# - Xamarin - 在特定 PC ResourceManager.GetString() 上始终返回默认cultureInfo 的字符串
- c# - 将 Datagrid Header Datatemplate 中的文本框绑定到筛选器属性
- python - 在某个置信百分位获得价值
- solr - TYPO3 异常:无法确定 pid
- javascript - Mongoose:按数组字段内的值查找文档