我使用的是Pythonv2.xWindows64位。 问题是,我想从列表中提取一个数字(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']
如何提取左轮速度(102)?
我试过data[9][-2]
,但得到的是2
,而不是102
。
使用
re.search
和regex模式,可以从字符串中提取整数值。这里,
re.search(r'\d+', data[9])
如果数据[9]有任何十进制字符,将返回一个匹配项。然后使用.group(0)
检索这个十进制字符,最后使用int()
内置方法将它们转换为整数使用
iterable[start:end]
获取它们的子集。另一个你可以做的事情是,如果你想从一个字符串中得到一个单一的整数,可以沿着(python2.x)的线:
在Python3中,filter返回一个
filter object
,这是一个iterable。您可以将其转换为一个列表,并将其加入以获得相同的函数结果。请注意,这不考虑分隔的数字。例如,
s = "123test456"
将返回123456
。如果你想让他们分开,你需要用一些更聪明的方法。同样,在python3中,map返回一个
map object
,因此您只需将其转换为一个列表。如果列表中包含单个
,
的所有项都可以视为键值对,则可以将数据转换为字典。这使得访问您感兴趣的值变得很容易。相关问题 更多 >
编程相关推荐