2016-02-05 29 views
2

我有兩個元素的元組列表。第一個元素是一個字符串,第二個元素是一個列表。我想用單個元組的所有元素創建列表列表。我嘗試過使用append方法,但它返回一個空列表。我也試過列表連接,但它只返回最後一個列表中的最後一個元組。列表(string,some_list)元組到列表[string,<some_list>列表]

lista = [('una Tantum', ['Frasi latine']), ('Montagna', ['Montagna', 'Geomorfologia']), ('Ande', ['Ande', "Gruppi montuosi dell'Argentina", 'Gruppi montuosi del Cile', u'Gruppi montuosi del Per\xf9', 'Gruppi montuosi della Bolivia', "Gruppi montuosi dell'Ecuador", 'Gruppi montuosi del Venezuela', 'Gruppi montuosi della Colombia']), ('Ande', ['Ande', "Gruppi montuosi dell'Argentina", 'Gruppi montuosi del Cile', u'Gruppi montuosi del Per\xf9', 'Gruppi montuosi della Bolivia', "Gruppi montuosi dell'Ecuador", 'Gruppi montuosi del Venezuela', 'Gruppi montuosi della Colombia'])] 
for x in lista: 
    data = [x[0]]+x[1] # in this way the data variable is populated only with the last element e.g. data = ('Ande', ['Ande', "Gruppi montuosi dell'Argentina", 'Gruppi montuosi del Cile', u'Gruppi montuosi del Per\xf9', 'Gruppi montuosi della Bolivia', "Gruppi montuosi dell'Ecuador", 'Gruppi montuosi del Venezuela', 'Gruppi montuosi della Colombia']) 
    print data 

我也曾嘗試用:

for x in lista: 
    x[1].append(x[0]) 

但它返回給我一個空列表。請幫我

期望的結果是:

[['una Tantum', 'Frasi latine'], ['Montagna', 'Montagna', 'Geomorfologia'], ['Ande', 'Ande', "Gruppi montuosi dell'Argentina", 'Gruppi montuosi del Cile', u'Gruppi montuosi del Per\xf9', 'Gruppi montuosi della Bolivia', "Gruppi montuosi dell'Ecuador", 'Gruppi montuosi del Venezuela', 'Gruppi montuosi della Colombia'], ['Ande', 'Ande', "Gruppi montuosi dell'Argentina", 'Gruppi montuosi del Cile', u'Gruppi montuosi del Per\xf9', 'Gruppi montuosi della Bolivia', "Gruppi montuosi dell'Ecuador", 'Gruppi montuosi del Venezuela', 'Gruppi montuosi della Colombia']] 
+0

您希望輸出什麼?請把它寫在代碼塊中的問題中。 –

+0

'數據'由最後一個元素填充,因爲每個循環都會覆蓋'data',所以最後你會得到最後一個循環的結果 – eli

+0

你的第二個代碼不會返回一個木板/空白列表 –

回答

1

您可以將第一種方法轉換到一個列表理解,爲了保持在一個新的列表中的所有已展開的子列表。也比python常規循環更pythonic。

>>> [[item]+sub_list for item,sub_list in lista] 
[['una Tantum', 'Frasi latine'], ['Montagna', 'Montagna', 'Geomorfologia'], ['Ande', 'Ande', "Gruppi montuosi dell'Argentina", 'Gruppi montuosi del Cile', u'Gruppi montuosi del Per\xf9', 'Gruppi montuosi della Bolivia', "Gruppi montuosi dell'Ecuador", 'Gruppi montuosi del Venezuela', 'Gruppi montuosi della Colombia'], ['Ande', 'Ande', "Gruppi montuosi dell'Argentina", 'Gruppi montuosi del Cile', u'Gruppi montuosi del Per\xf9', 'Gruppi montuosi della Bolivia', "Gruppi montuosi dell'Ecuador", 'Gruppi montuosi del Venezuela', 'Gruppi montuosi della Colombia']] 
+1

它的工作原理,謝謝批量 – Lupanoide

-2

據我瞭解,你要的所有元組轉換成列表: 在蟒蛇V3:

list(map(list, l)) 

或者在Python版:

map(list, l) 

  • l是你的清單(lista
0

爲了完整起見,在Python3.5你做這樣的:

>>> [[x, *l] for x,l in lista] 
[['una Tantum', 'Frasi latine'], ['Montagna', 'Montagna', 'Geomorfologia'], ['Ande', 'Ande', "Gruppi montuosi dell'Argentina", 'Gruppi montuosi del Cile', 'Gruppi montuosi del Perù', 'Gruppi montuosi della Bolivia', "Gruppi montuosi dell'Ecuador", 'Gruppi montuosi del Venezuela', 'Gruppi montuosi della Colombia'], ['Ande', 'Ande', "Gruppi montuosi dell'Argentina", 'Gruppi montuosi del Cile', 'Gruppi montuosi del Perù', 'Gruppi montuosi della Bolivia', "Gruppi montuosi dell'Ecuador", 'Gruppi montuosi del Venezuela', 'Gruppi montuosi della Colombia']] 
0

地圖(拉姆達X:X [0] + X [1] ,[('A',['Jay','Hi']),('B',['Jay','Hello'])])