我试图在列表中存储整数和浮点数,以便在第二时刻对它们进行处理。现在,我知道,在列表中的整数和浮点数这两个命令在列表中查找整数和浮点数
A = map(int, re.findall('\d+', string1))
A = map(float, re.findall('\d+.\d+', string1))
但我怎么能对其进行调整,以便读取(和存储按顺序)?
我试图在列表中存储整数和浮点数,以便在第二时刻对它们进行处理。现在,我知道,在列表中的整数和浮点数这两个命令在列表中查找整数和浮点数
A = map(int, re.findall('\d+', string1))
A = map(float, re.findall('\d+.\d+', string1))
但我怎么能对其进行调整,以便读取(和存储按顺序)?
使小数点部分可选:
A = map(lambda v: float(v) if '.' in v else int(v),
re.findall(r'\d+(?:\.\d+)?', string1))
请注意,我用的λ测试小数点转换为int,如果缺少它,我逃脱的.
匹配字面不只是任何字符,在正则表达式中.
的正常含义。
演示:
>>> import re
>>> s = '42 12.43 10'
>>> map(lambda v: float(v) if '.' in v else int(v), re.findall(r'\d+(?:\.\d+)?', s))
[42, 12.43, 10]
能'4.'和'.1'发生在你的名单?它们应该是有效的浮点数,但是当前的过滤器会忽略它们。 – usr2564301
是的,我也面临着这个问题... – james42