我搜索了其他各种帖子,虽然有一些有用的提示,但我没有发现与我类似的问题,所以我想我会问。我生成了以下列表:
data2 = ['AN1_OUT,24','AN2_OUT,13','AN3_OUT,14','AN4_OUT,15']
我想要做的是识别设置(AN1_OUT 等)和伴随它的值(2,13 等)。我已经通过使用旧的“if-elif”成功地识别了该设置,因为我只需要知道这个设置,但是,我现在需要分离出这个值。到目前为止,我正在使用:
data3 = re.findall('[0-9]{2}',data2[i])
byte1 = map(lambda n: int(n[:2]),data3)
这是一个 for 循环,它遍历 data2 列表中的所有元素(本例中为 4 个)。对于每个“我”,我得到以下信息:
[24]
[13]
[14]
[15]
我知道这是我所期望的,但是,当值是单个数字时会出现问题,例如:
'AN1_OUT,2'
在这种情况下,我错过了那个值并且它没有被打印出来。我尝试将 data3 函数中的正则表达式更改为:
data3 = re.findall('[0-9]{1,2}',data2[i])
然而,问题在于它会在 AN1_OUT、AN2_OUT 等中获取数字。所以我最终得到:
[1,2]
[2,13]
[3,14]
[4,15]
我已经研究了各种不同的方法来解决它,但事实证明它非常难以捉摸。任何帮助,将不胜感激。