2012-10-18 126 views
2

是否可以用整數1替換字典中的所有值,而不考慮值?Python:替換字典中的所有值

謝謝!

+0

你嘗試過什麼? –

+0

在發佈之前,我們都強烈建議嘗試一些東西並最終發佈它,因爲這個社區的意義不是提供隨時可用的解決方案,而是幫助人們更好地學習和理解他們的問題:) –

回答

6

當然,你可以這樣做:

d = {x: 1 for x in d} 

,創建一個新的字典d,在d每個鍵(舊的地圖)至1

+0

感謝你,我正在尋找這樣的事情。我只是不太確定正確的格式是什麼,上一次我嘗試發佈關於字典的東西時,我被嘲笑;因此我沒有在這裏發佈我的失敗嘗試。 – user1620716

+5

修改原始字典:'for for d in d:d [k] = 1' –

+1

另一種方式:'d = d.fromkeys(d,1)' – barracel

0

是的,這是可能的。通過字典中的每一個關鍵迭代和相關的值設爲1。

0
a = {1:2, 2:2,3:2} 
a = {x:1 for (x,_) in a.iteritems()} 
print a 

{1:1,2:1,3:1}

+3

肯定只是'{k:1 for k in a} '......沒有必要讓每個項目只將價值扔掉... – kindall

+0

請注意,這不會修改原始字典。這不是一個真正的問題,除非你打算把它封裝在一個函數中:'def overwrite_dict_values(d,new_value):...' –

8

您可以使用字典理解(如其他人所說的)來創建一個新的字典,相同的密鑰作爲舊字典,或者,如果你需要做整個事情到位:

for k in d: 
    d[k] = 1 

如果你真的喜歡1俏皮話,您可以使用update做到到位:

d.update((k,1) for k in d)