列表中的[string,some_list]元组列表[string,<items from =“”some_list =“”>]列表

时间:2016-02-05 09:29:37

标签: python list tuples

我有两个元素的元组列表。第一个元素是一个字符串,第二个元素是一个列表。我想创建一个列表列表,其中包含单个元组的所有元素。我尝试过append方法,但它返回一个空列表。我也尝试了列表连接,但它只返回最后一个列表中的最后一个元组。

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']]

4 个答案:

答案 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 :(得分: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']]

答案 2 :(得分:0)

map(lambda x:[x [0]] + x [1],[(&#39; A&#39;,[&#39; Jay&#39;,&#39;嗨&#39;] ),(&#39; B&#39;,[&#39; Jay&#39;,&#39;你好&#39;])])

答案 3 :(得分:-2)

据我了解,您希望将所有元组转换为列表: 在python v3中:

list(map(list, l))

或者在python v2中:

map(list, l)

注意

  • l是您的列表(lista