我有一个由元组组成的数组。
Data = [('1234', 'abcd'), ('5678', 'efgh')]
我现在在数组中有另一组变量:
add = ["#happy", "#excited"]
我正在尝试以相同的顺序将'add'附加到'Data',以使输出看起来像:
data_new = [('1234', 'abcd', '#happy'), ('5678', 'efgh',"#excited")]
这可能吗?
答案 0 :(得分: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')]
请注意,解决此类问题的常见pythonic方法是使用zip()
,但它并不会立即为您的示例提供所需的输出,因为您最终会使用嵌套元组:
>>> zip(Data,add) # or list(zip(Data,add)) in Python3
[(('1234', 'abcd'), '#happy'), (('5678', 'efgh'), '#excited')]
答案 1 :(得分:1)
您可以在列表推导中添加元组并使用zip:
>>> [t+(e,) for t, e in zip(Data, add)]
[('1234', 'abcd', '#happy'), ('5678', 'efgh', '#excited')]
(适用于Python 2和3)