2015-10-14 95 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