Skip to main content
 首页 » 编程设计

python之从 Python 列表中提取数字

2025年05月04日12bhlsheji

我正在使用 Python v2.x Windows 64 位。 问题是,我想从列表中提取一个数字 (102),但我只能得到 if 的一部分。

这是一个列表:

data = ['getmotors \r', 'Parameter,Value\r', 'Brush_RPM,0\r', 'Brush_mA,0\r', 'Vacuum_RPM,0\r', 'Vacuum_mA,0\r', 'LeftWheel_RPM,1800\r', 'LeftWheel_Load%,42\r', 'LeftWheel_PositionInMM,10452\r', 'LeftWheel_Speed,102\r', 'RightWheel_RPM,1800\r', 'RightWheel_Load%,42\r', 'RightWheel_PositionInMM,9650\r', 'RightWheel_Speed,102\r', 'ROTATION_SPEED,0.00\r', 'SideBrush_mA,0\r', '\x1a'] 

如何提取 LeftWheel_Speed (102) 的速度? 我尝试了 data[9][-2],但我得到的是“2”而不是“102”。

请您参考如下方法:

使用 re.search 和正则表达式模式,您可以从字符串中提取整数值。

>>> import re 
>>>  
>>> re.search(r'\d+', data[9]) 
<_sre.SRE_Match object; span=(16, 19), match='102'> 
>>> re.search(r'\d+', data[9]).group(0) 
'102' 
>>> speed = int(re.search(r'\d+', data[9]).group(0)) 
>>> speed 
102 

此处,如果 data[9] 包含任何小数字符,re.search(r'\d+', data[9]) 将返回一个匹配项。然后使用 .group(0) 检索此十进制字符,最后使用 int() 内置方法将它们转换为整数