2017-09-29 23 views
-1

我有一個列表:通過存儲在一個列表中蟒另一元件替換的元組的元素

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

我還具有在

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

我主要類型元組的列表目標是用replace_by列表中的相應元素,即a1,b1,c1,d1,e1替換main_list中每個元組的第一個元素,即a,b,c,d,e。

如果有人能以pythonic的方式幫助我,我將不勝感激!提前致謝!!

+1

它是如何「對應」的?按指數?側記:元組是不可變的,你不能「替換」元組中的任何東西 - 你可以創建一個新元組! – 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第二個新的元組。

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

這幫了我! – Saaraj

相關問題