我試圖在列表中存儲整數和浮點數,以便在第二時刻對它們進行處理。現在,我知道,在列表中的整數和浮點數這兩個命令在列表中查找整數和浮點數
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