如何将部分列表项分离到一个新列表中?
How to separate parts of list item into a new list?
我想从我的一个函数中获取 return 数据并创建一个新列表,将初始列表中包含的两个值作为新列表的索引。
我目前正在尝试的是:我从串行端口获得响应,将响应数据存储在一个变量中,然后执行 .split(' ')
(假设这将 return list holding items that are separated with a space) and it did.
我想得到的是: 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]'
我的数据用.split(' ')
方法:
['[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(";")]
我想从我的一个函数中获取 return 数据并创建一个新列表,将初始列表中包含的两个值作为新列表的索引。
我目前正在尝试的是:我从串行端口获得响应,将响应数据存储在一个变量中,然后执行 .split(' ')
(假设这将 return list holding items that are separated with a space) and it did.
我想得到的是: 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]'
我的数据用.split(' ')
方法:
['[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(";")]