2015-05-07 42 views
0

我需要創建一個列表清單。我已經包含了一些導致我遇到問題的代碼。底部的masterList是所需的輸出。我試圖解釋我的代碼並展示清晰理解的步驟。Python 2.7中的嵌套列表(列表清單)

storeTask = list(islice((t for t in list5 if t[1] == 'Tasked'), 3)) 

打印storeTask返回這樣的:通過storeTask

[['Acq666666', 'Tasked', 'Location', 'Movie', '20XX-MM-YYYY','XXXX', ['367179', 'Image 6'], ['367179', 'VID 12']], ['Acq777777', 'Tasked', 'Location', 'Movie', '20XX-MM-XXXX', 'XXXX ', ['367194', 'Image 1'], ['367194', 'VID 5']], ['Acq888888', 'Tasked', 'Location', 'Movie', '20xx-MM-YYYY', 'XXXX', ['367195', 'VID 9']]] 

我環路和計數的元素。如果計數是8,我刪除第二個嵌套列表的第一個元素。

for st in storeTask: 
taskedL = len(st) 
if taskedL == 6: pass 
if taskedL == 7: pass 
if taskedL == 8: 
    longList = st[7] 
    del(longList[0]) 

打印ST返回此:

['Acq666666', 'Tasked', 'Location', 'Movie', '20XX-MM-YYYY', 'XXXX', ['367179', 'Image 6'], ['VID 12']] 
['Acq777777', 'Tasked', 'Location', 'Movie', '20XX-MM-YYYY', 'XXXX', ['367194', 'Image 1'], ['VID 5']] 
['Acq888888', 'Tasked', 'Location', 'Movie', '20XX-MM-YYYY', 'XXXX', ['367195', 'VID 9']] 

要刪除我用壓扁

mstock = flatten(st) 

打印mstock返回嵌套列表:

['Acq666666', 'Tasked', 'Location', 'Movie', '20XX-MM-YYYY', 'XXXX', '367179', 'Image 6', 'VID 12'] 
['Acq777777', 'Tasked', 'Location', 'Movie', '20XX-MM-YYYY', 'XXXX', '367194', 'Image 1', 'VID 5'] 
['Acq888888', 'Tasked', 'Location', 'Movie', '20XX-MM-YYYY', 'XXXX', '367195', 'VID 9'] 

這也正是結果我需要。但是,我需要將這些列表重新放回主列表中。下面是我想什麼,輸出是:

masterList = [ 
['Acq666666', 'Tasked', 'Location', 'Movie', '20XX-MM-YYYY', 'XXXX', '367179', 'Image 6', 'VID 12'] 
['Acq777777', 'Tasked', 'Location', 'Movie', '20XX-MM-YYYY', 'XXXX', '367194', 'Image 1', 'VID 5'] 
['Acq888888', 'Tasked', 'Location', 'Movie', '20XX-MM-YYYY', 'XXXX', '367195', 'VID 9'] 
] 

**我試圖創建一個空的列表,並追加他們,但結果產生這種每個列表:

[['Acq888888', 'Tasked', 'Location', 'Movie', '20XX-MM-YYYY', 'XXXX', '367195', 'VID 9']] 
[['Acq666666', 'Tasked', 'Location', 'Movie', '20XX-MM-YYYY', 'XXXX', '367179', 'Image 6', 'VID 12']] 

我有問了一個類似的問題,但一直未能成功地使用。

+1

也許在生成最後結果的代碼中,有人可以確定哪裏出錯了? – kporter

回答

0

其他代碼會有幫助,會像下面的東西解決您的問題?

masterList = [flatten(st) for st in storeTask]