2017-09-29 6 views
-1

にリストに格納されている他の要素によってタプルの要素を置換:私がリストを持っているのpython

replace_by=['a1','b1','c1','d1','e1'] 

Iも

main_list=[('a',[]),('b',[]),('c',[]),('d',[]),('e',[])] 

のタイプ私の主にタプルのリストを持っていますmain_listの各タプルの最初の要素、つまりa、b、c、d、eをreplace_byリストの対応する要素、つまりa1、b1、c1、d1、e1で置き換えることです。

もし誰かが私にピジョンソニックの方法で私を助けることができたら、私は感謝します!前もって感謝します!!

+1

どのように "対応"ですか?インデックスによって? side-note:タプルは不変です。タプルの中の何かを "置き換える"ことはできません - 新しいタプルを作成するだけです! – alfasin

+1

タプルは不変なので、タプルを変更するのではなく、別のデータ構造を使用するか、タプルを置き換えなければなりません。また、このような場合にマップのようなものを使用したくないと思うかもしれません。あなたが達成しようとしていることを説明してくれたら助かります(@alfasinが示唆しているように、期待される出力の例を与えました)。 – SwiftsNamesake

+0

タプルは不変ですが、内部にはリストがありません。彼は 'main_list [0] [1] .append(replace_by [1])'を使うことができ、問題はありません。 –

答えて

0

タプルは変更できません。しかし、簡単に新しいバージョンを作成することができます

replace_by=['a1','b1','c1','d1','e1'] 
main_list=[('a',[]),('b',[]),('c',[]),('d',[]),('e',[])] 

new_list = [(replace_by[i],b)for (i,(a,b)) in enumerate(main_list)] 
print(new_list) 
1

タプルは不変であるため、実際には「置換」できませんが、replace_byリストの最初の要素と元のmain_listの2番目のタプルを使用して新しいタプルを作成することはできます。

new_list = [(a,b[1]) for a,b in zip(replace_by,main_list)] 
+0

これは私を助けました! – Saaraj

関連する問題