2012-03-02 75 views
-1

附加我怎麼能遞增python.In列表下面的情況Python列表,同時增加

因此,這意味着 我想幾個列表添加到一個列表是很容易像列表1 +列表2

但我需要返回一個最終名單,所有的名單將被追加,每顆名單將iteration.What的結果,我試圖象下面這樣:

def result(): 
    temps = [list of links] 
    final_list = [] 
    for link in temps: 
     final_list = final_list+get_list(link) # get list returning a list and temps is a list 
    return final_list 


def get_list(link): 
     #process the link and return a list 
     return li 

但隨着循環之前每一次,final_list是正在初始化,我是gett []+get_list() 我需要我最終列表中的所有以前的值。

樣品輸入:[鏈接列表]樣品從放:final_list #contains 所有數據作爲一個單獨的列表,從get_list()

+1

你能給輸入和預期輸出的例子嗎? – strcat 2012-03-02 07:19:43

+1

你能舉一個你有什麼樣的數據和你想要最終名單的例子嗎?我已經讀過三次你的問題,但我仍然沒有看到你真正想要做的事情。 – 2012-03-02 07:20:12

+1

同樣在這裏..我讀了兩遍後不能得到你的問題......你究竟在問什麼?..? – 2012-03-02 07:23:34

回答

1

返回所以,你想打開的東西名單列入清單並壓平它?

>>> strings = ["one two", "three four", "five six"] 
>>> [value for s in strings for value in s.split()] 
['one', 'two', 'three', 'four', 'five', 'six'] 
+1

不要使用'sum(,[])',使用'itertools。鏈「或列表理解。 – agf 2012-03-02 07:43:47

+1

不,我只想得到一個輸出結果是一個列表,而這個列表將來自其他列表,如範圍(0,3)中的i:out = get_list()get_list每次都返回一個新列表返回所有以前的結果 – mushfiq 2012-03-02 07:46:13

+2

如果您提供了一個真實輸入(使用python,而不是英文)和預期輸出的示例,它會更容易理解您想要的內容。 – strcat 2012-03-02 07:58:28

1

,如果你想是這樣的:

get_list(L1) -> ['L1_val1','L1_val2'] 
get_list(L2) -> ['L2_val1','L2_val2'] 
result([L1,L2]) -> ['L1_val1','L1_val2','L2_val1','L2_val2'] (a) 

result([L1,L2]) -> [['L1_val1','L1_val2'],['L2_val1','L2_val2']] (b) 

我建議:

內置地圖:

map(get_list,(L1,L2,..)) -> [['L1_val1','L1_val2'],['L2_val1','L2_val2'],..] 

itertools.chain:

chain(*map(get_list,(L1,L2,..))) -> iterator obj # star unpacks tuple into sequens of args 
List(chain(*map(get_list,(L1,L2,..)))) -> ['L1_val1','L1_val2','L2_val1','L2_val2',..] 

所以,你的代碼可以改寫爲

from itertools import chain 

def result_a(list_of_links): 
    return List(chain(*map(get_list,list_of_links))) 

def result_b(list_of_links): 
    return map(get_list,list_of_links) 

def get_list(one_link): 
    #process the link and return a list 
    return list_of_processed_values 
0

所有其他的答案是方式比需要更多的複雜。相反的:

final_list = [] 
for link in temps: 
    final_list = final_list+get_list(link) 

用途:

final_list = [] 
for link in temps: 
    final_list.extend(get_list(link))