Python将CSV加载到列表中,并对项目运行正则表达式

Python将CSV加载到列表中,并对项目运行正则表达式,python,regex,Python,Regex,我正在使用python将CSV文件读入列表,如下所示 with open(myfile) as csvfile: readCSV = csv.reader(csvfile, delimiter=',') postcode_list = [] for row in readCSV: postcode = row[0] postcode_list.append(postcode) 这是正确的,最后我列出了所有的邮政编码

我正在使用python将CSV文件读入列表,如下所示

    with open(myfile) as csvfile:
        readCSV = csv.reader(csvfile, delimiter=',')
        postcode_list = []
    for row in readCSV:
        postcode = row[0]
        postcode_list.append(postcode)
这是正确的,最后我列出了所有的邮政编码。我还有一个regex语句,它检查邮政编码以确保它们的格式正确

^[A-Z]{1,2}[0-9]{1,2}[A-Z]?s[0-9][A-Z][A-Z]$

如果邮政编码与正则表达式不匹配,我将尝试获取一个要显示的错误。在CSV到列表的转换过程中,我是否需要迭代列表来执行此操作,或者有什么方法可以执行此操作?

在第二个
for
循环中执行此操作。从
re
模块创建Python模式匹配对象。使用实例方法
match(string)
匹配邮政编码。如果该方法返回true,则存在匹配项,并且正在检查的邮政编码应附加到
postcode\u列表
。如果匹配返回false,
中断


for
循环之外创建匹配对象,以避免代价高昂的实例化和垃圾收集——构建正则表达式自动机需要时间。

正则表达式的一点改进<代码>^[A-Z]{1,2}[0-9]{1,2}[A-Z]?s[0-9][A-Z]{2}$我可以看到变化,但你能解释改进吗?取决于如果发现无效代码,你是否想退出。为此,请在添加到列表之前进行检查。如果没有,在将其添加到列表之前仍要进行检查,但要将坏索引添加到另一个列表中。这样你就有了一个糟糕的索引列表。@fightstarr20:刚刚删除了上一个
[a-Z]
并添加了
{2}
。有道理吧?@noob-
[A-Z][A-Z]
[A-Z]{2}
快,所以这并不是真正的速度提升。是的,第一个的速度是原来的两倍。