如何在Python中对列表应用正则表达式的同时对其进行迭代



我正在尝试运行这段代码。

castResultType = list(filterResultSet[1:32:5]) 
cleanList = []
for i in castResultType:
cleanList.append(re.sub('[^d.]', '',castResultType[i]))
print(cleanList)

我希望基本上得到列表castResultType中的每个项,即从插入到空列表cleanList中的列表filterResultSet中获得特定值。同时在将上述正则表达式插入cleanList之前,将其应用于castResultType中的每个值。我确信我做错了什么,如果有任何帮助,我将不胜感激。我对python和编程也很陌生,所以如果我问了一些愚蠢的问题,我很抱歉。

您(可能(面临的问题就在这一行:for i in castResultType

这行所做的是在(list) castResultType中的值上循环,并将其元素分配给i。然而,当您调用castResultType[i]时,您要求的是一个不存在的列表索引。

你可能想做的是:

for i in range(len(castResultType)):
cleanList.append(re.sub('[^d.]', '',castResultType[i]))
# etc

你还可以做的是:

for i in castResultType:
cleanList.append(re.sub('[^d.]', '', i))
# etc

有很多其他方法可以编码你想做的事情,但这些可能是初学者最熟悉的。

除了循环中的错误之外,问题还可能出在正则表达式的使用上。我建议在循环之前,先在castResultType中的单个元素上试用正则表达式。

您可以使用内置的map函数将函数映射到可迭代:中的项

clean_list = list(map(lambda elem: re.sub('[^d.]', '', elem), castResultType))

相关内容

最新更新