我想使用re.match()
检查列表中的每个元素是否与格式digitFullStopDigitDigitDigit匹配(例如2.00)
如果某个元素与格式匹配,我希望将该元素附加到新列表中。如果元素与格式不匹配,我想将NaN附加到新列表中
问题是我的代码不起作用;它将所有元素设置为NaN
谢谢你的帮助
import re
import numpy as np
lst = [2, 2.00, 2.2, 20000]
newlst = []
for l in lst:
if re.match('^\d{1}(\.)\d{2}$', str(l)):
newlst.append(l)
else:
newlst.append(np.nan)
# Output
[nan, nan, nan, nan]
# Expected output
[nan, 2.00, nan, nan]
问题是
操作是简化浮点数。从2.0000000。。。到“2.0”
“2.0”与您的模式不匹配。解决此问题的一种方法是使用此新模式。将匹配点后的1个或多个零:
使用新模式,您的输出将符合要求:
相关问题 更多 >
编程相关推荐