2012-07-15 79 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