2012-12-10 149 views
0

改變列表的字典中的值,我HAE這樣我怎樣才能在Python

dict1 = [('var1','aa'),('var2','bb')('var3','cc')]

我還有一個字典詞典

dict2 = [('var2','22'),('var3','33'),('var5','23'),('var6','33'),('var7','23')]

什麼我想要做的是,我把dict2的內容替換爲dict1中的varibels

我的意思是讓最終dict3 = dict2 = [('var2','bb'),('var3','cc'),('var5','23'),('var6','33'),('var7','23')]

+9

這些都不是詞典維持秩序,他們是元組的列表,將它們轉換爲字典與詞典(),遍歷鍵和更換。 – monkut

+0

@monkut你爲什麼沒有發佈這個答案?你打敗了我(當我寫代碼的時候)。 –

回答

5
>>> list1 = [('var1','aa'),('var2','bb'),('var3','cc')] 
>>> list2 = [('var2','22'),('var3','33'),('var5','23'),('var6','33'),('var7','23')] 
>>> dict1 = dict(list1) 
>>> list2 = [(k, dict1.get(k, v)) for k, v in list2] 
>>> list2 
[('var2', 'bb'), ('var3', 'cc'), ('var5', '23'), ('var6', '33'), ('var7', '23')] 

這將從原來list2

+0

+1我不認爲這是OP真正想要的,但光滑。 –

+0

感謝哥們,那正是我想要的 – user825904

+0

@ user33好證明我錯了哈哈。但是,如果您要「替換」與變量相關的值,則應該使用字典。元組是永恆不變的,字典的意思是(看起來)正是你在做什麼。 –

3

那些不是dictionaries。這裏是如何做到這一點,如果他們是:

>>> dict1 = {'var1':'aa', 'var2':'bb' ,'var3':'cc'} 
>>> dict2 = {'var2':'22', 'var3':'33', 'var5':'23', 'var6':'33', 'var7':'23'} 
>>> for key in dict2: 
...  if key in dict1: 
...    dict2[key] = dict1[key] 
... 
>>> dict2 
{'var5': '23', 'var7': '23', 'var6': '33', 'var3': 'cc', 'var2': 'bb'} 

你可能想用dict1dict2實際上是字典在我的例子開始,但是請注意,您可以使用如容易將它們轉換。 dict1 = dict(dict1)

+0

我可以轉換回tuple後關閉內容 – user825904

+0

是的,只需使用[[(k,v)for k,v in dict2.items()]' – sberry

+0

是的,但是如果您想要該元組形式的最終結果,只需使用sberry的答案。 –