2015-10-14 92 views
1

我必须去除提取字符串的空白,一次一个字符串,我使用split()。 split()函数在删除空格后返回列表。我想将它存储在我自己的动态列表中,因为我必须汇总所有字符串。Python添加到列表中

我的代码片段:

while rec_id = "ffff" 
     output = procs.run_cmd("get sensor info", command) 
     sdr_li = [] 
     if output: 
      byte_str = output[0] 
      str_1 = byte_str.split(' ') 
      for byte in str_1: 
       sdr_li.append(byte) 
     rec_id = get_rec_id() 

Output = ['23 0a 06 01 52 2D 12'] 
str_1 = ['23','0a','06','01','52','2D','12'] 

这看起来不是很优雅,从一个列表传送到另一个。是否有另一种方法来实现这一点。

+1

'sdr_li ='[在str.split(”“)按字节] –

+0

跆拳道是'byte_str '用于,'str'从哪里来?还要修复缩进 – UpAndAdam

回答

1

list.extend()

sdr_li.extend(str_1) 
+0

请注意,如果您使用这种方法,您仍然需要将sdr_li的定义从循环中取出,因为您会对其进行破坏。 –

0

str.split()将返回一个列表,以便只需添加列表的项目添加到主列表。使用extendhttps://docs.python.org/2/tutorial/datastructures.html

因此重写你的数据转化为清晰和正确的缩进你会得到:

my_list = list 
while rec_id = "ffff" 
    output = procs.run_cmd("get sensor info", command) 
    if output: 
     result_string = output[0] 
     # extend my_list with the list resulting from the whitespace 
     # seperated tokens of the output 
     my_list.extend(result_string.split()) 
     pass # end if 
    rec_id = get_rec_id() 
    ... 
    pass # end while