我有两个元素的元组列表。第一个元素是一个字符串,第二个元素是一个列表。我想创建一个列表列表,其中包含单个元组的所有元素。我尝试过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']]
答案 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],[(' A',[' Jay','嗨'] ),(' B',[' Jay','你好'])])
答案 3 :(得分:-2)
据我了解,您希望将所有元组转换为列表: 在python v3中:
list(map(list, l))
或者在python v2中:
map(list, l)
注意:
l
是您的列表(lista
)