Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将列表项的各个部分分离到新列表中?_Python_List Comprehension_Pyserial - Fatal编程技术网

Python 如何将列表项的各个部分分离到新列表中?

Python 如何将列表项的各个部分分离到新列表中?,python,list-comprehension,pyserial,Python,List Comprehension,Pyserial,我想从一个函数中获取返回数据,并创建一个新列表,其中包含初始列表中包含的两个值作为新列表的索引 我目前正在尝试的是:我从串行端口获得一个响应,我将响应数据存储在一个变量中,然后执行.split(“”)(假设这将返回一个包含用空格分隔的项目的列表),它确实执行了 我想得到的是:gax=['110.00','94.00'] 我的回答没有.split(“”)方法: b'[06][1c]ans=33[0d] job=42985[0d] mid=001[0d] status=0;"ok&

我想从一个函数中获取返回数据,并创建一个新列表,其中包含初始列表中包含的两个值作为新列表的索引

我目前正在尝试的是:我从串行端口获得一个响应,我将响应数据存储在一个变量中,然后执行
.split(“”)
(假设这将返回一个包含用空格分隔的项目的列表),它确实执行了

我想得到的是:
gax=['110.00','94.00']

我的回答没有
.split(“”)
方法:

b'[06][1c]ans=33[0d] job=42985[0d] mid=001[0d] status=0;"ok"[0d]do=b[0d] crib=69.80;67.80[0d] gax=110.00;94.00[0d][1e][1d]'
['[06][1c]ans=33[0d]', 'job=42985[0d]', 'mid=001[0d]',
 'status=0;"ok"[0d]do=b[0d]', 'crib=69.80;67.80[0d]',
 'gax=110.00;94.00[0d][1e][1d]']
['g', 'a', 'x', '=', '1', '1', '0', '.', '0', '0', ';', '9', '4', '.', '0', '0',
 '[', '0', 'd', ']', '[', '1', 'e', ']', '[', '1', 'd', ']']
使用
.split(“”)
方法查看我的数据:

b'[06][1c]ans=33[0d] job=42985[0d] mid=001[0d] status=0;"ok"[0d]do=b[0d] crib=69.80;67.80[0d] gax=110.00;94.00[0d][1e][1d]'
['[06][1c]ans=33[0d]', 'job=42985[0d]', 'mid=001[0d]',
 'status=0;"ok"[0d]do=b[0d]', 'crib=69.80;67.80[0d]',
 'gax=110.00;94.00[0d][1e][1d]']
['g', 'a', 'x', '=', '1', '1', '0', '.', '0', '0', ';', '9', '4', '.', '0', '0',
 '[', '0', 'd', ']', '[', '1', 'e', ']', '[', '1', 'd', ']']
这就是我尝试列表理解时得到的结果:

b'[06][1c]ans=33[0d] job=42985[0d] mid=001[0d] status=0;"ok"[0d]do=b[0d] crib=69.80;67.80[0d] gax=110.00;94.00[0d][1e][1d]'
['[06][1c]ans=33[0d]', 'job=42985[0d]', 'mid=001[0d]',
 'status=0;"ok"[0d]do=b[0d]', 'crib=69.80;67.80[0d]',
 'gax=110.00;94.00[0d][1e][1d]']
['g', 'a', 'x', '=', '1', '1', '0', '.', '0', '0', ';', '9', '4', '.', '0', '0',
 '[', '0', 'd', ']', '[', '1', 'e', ']', '[', '1', 'd', ']']
我怎样才能实现我想做的事?
列表理解是正确的方法吗

def get_job_from_serial():
    response_f = serial_client.readline()
    print('job sent from host {}'.format(response_f))
    return response_f

jrfromserial = get_job_from_serial()
j = jrfromserial.decode('utf-8').split(' ')
print('la lista de strings disponible son ------ >> {}'.format(j))

# here I was trying to remove the trailing part in brackets.
# what I got was gax=110.00;94.
pre_gax = j[5].rstrip('[0d][1e][1d]]')
print(pre_gax)

gax = [g for g in j[5]]
print(gax)

您得到的结果是,您正在循环一个字符串值,该值将为您提供一个字符列表

要解决gax问题,您应该能够做到:

gax_nums = pre_gax.lstrip("gax=")
gax = [float(x) for x in gax_nums.split(";")]