2012-07-15 41 views
1

我有這個詞典
轉換單值字典,詞典多值在python

total_values = {'a':1, 'b':2, 'c':3} 

現在我想這本詞典轉換成多值之一。 像

total_values = {'a':(1,False), 'b':(2, True), 'c':(3, True)} 

請告訴我最Python的方式來做到這一點....

如何true和false值確定沒關係,想它爲布爾變量的值我可以使用這個..

+1

我們需要更多的細節;什麼決定了布爾值? – 2012-07-15 11:20:44

+0

布爾值doesn;這裏很重要..watever它可以..只是需要知道轉換的方式。,,, – 2012-07-15 11:21:50

回答

4

不妨讓它隨機:

from random import choice 
for key in total_values: 
    total_values[key] = (total_values[key], choice((True, False))) 
6

在2.6:

dict((k, (v, <boolean expression>)) for (k, v) in total_values.iteritems()) 

在2.7:

{ k:(v, <boolean expression>) for (k, v) in total_values.iteritems() } 

在3.0(感謝@ C2H5OH):

{ k:(v, <boolean expression>) for (k, v) in total_values.items() } 

注意,這些解決方案創建一個全新的字典。如果你想修改現有字典,@ MartijnPieters的answer是正確的方向。

+1

Python 3的語法就像字典表達式一樣2.7。 – 2012-07-15 11:26:19

+3

在Python 3.0中就像在2.7中一樣,但是你需要用'.items()'改變'.iteritems()'。而且,'for'關鍵字後面的'(k,v)'後面的括號在所有版本中都是可選的。 – C2H5OH 2012-07-15 11:26:30

+0

@ C2H5OH:感謝您的澄清。括號是個人選擇;因爲總是忽略它們是不切實際的,所以總是使用它們更容易,更易讀。 – 2012-07-15 11:31:05