2016-09-12 7 views
0

私はタプルで構成される配列を持っています。リストの要素を配列のPythonの下に挿入します

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

私は今、配列内の変数の別のセットを持っている:

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

Iが出力のようになりますように、同じ順序で「データ」に「追加」追加しようとしています:

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で動作します)

関連する問題