2014-01-30 48 views
0

如果子列表是4項,請保留,如果列表爲3項,則將「Null」插入子列表的第三位。一個有條件的「if」的for循環可以做到這一點,但它很慢。有沒有更快的方法?如果子列表有一定的長度,如何將一個項目插入子列表?

lst = [['4','4','4','4'],['3','3','3'],['1','42','','4'],['1','2','3']] 

Desired_List = [['4','4','4','4'],['3','3','Null','3'],['1','42','5','4'],['1','2','Null','3']] 

我所擁有的,不爲​​某種原因,我不明白工作:

Desired_List = [] 
for sublist in lst: 
    if len(sublist) == 3: 
     Desired_List.extend(sublist.insert(3,"Null")) 
    else: 
     Desired_List.extend(sublist) 

這實在是太慢了,因爲我這樣做是爲了一個大名單。有沒有更快的方法?

+0

你確定你的代碼甚至工作?你試圖擴展'None',這是一個錯誤。 –

回答

1

,如果你認爲只是用它,而不是創建一個新的列表Desired_List,根本就已經改變lst

>>> for sublist in lst: 
... if len(sublist) == 3: 
...  sublist.insert(2,"Null") 
... 
>>> lst 
[['4', '4', '4', '4'], ['3', '3', 'Null', '3'], ['1', '42', '', '4'], ['1', '2', 'Null', '3']] 
+0

不知道你能做到這一點! – Chris

相關問題