我正在尝试运行这段代码。
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))