如果你想要这样的东西:
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