2016-09-12 2 views
0

У меня есть массив, состоящий из кортежей.Вставить элементы в списки под массивом python

Data = [('1234', 'abcd'), ('5678', 'efgh')] 

теперь у меня есть еще один набор переменных в массиве:

add = ["#happy", "#excited"] 

Я пытаюсь добавить «добавить» к «данным» в том же порядке, таким образом, что вывод должен выглядеть следующим образом:

data_new = [('1234', 'abcd', '#happy'), ('5678', 'efgh',"#excited")] 

Возможно ли это?

ответ

2

Вы можете использовать список понимание с enumerate():

>>> Data = [('1234', 'abcd'), ('5678', 'efgh')] 
>>> add = ['#happy', '#excited'] 
>>> [x + (add[i],) for i,x in enumerate(Data)] 
[('1234', 'abcd', '#happy'), ('5678', 'efgh', '#excited')] 

Обратите внимание, что общий вещий способ решения такого рода проблемы с zip(), но не сразу дают желаемый результат для примера, потому что вы в конечном итоге с вложенными кортежей:

>>> zip(Data,add) # or list(zip(Data,add)) in Python3 
[(('1234', 'abcd'), '#happy'), (('5678', 'efgh'), '#excited')] 
+0

Это именно то, что я искал. Спасибо, Крис! –

1

Вы можете добавить кортежей в список понимания и использования почтового индекса:

>>> [t+(e,) for t, e in zip(Data, add)] 
[('1234', 'abcd', '#happy'), ('5678', 'efgh', '#excited')] 

(работает в Python 2 и 3)

Смежные вопросы