2

我有这本词典

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

现在我想把这本字典转换成多值字典。像

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

请告诉我最pythonic的方式来做到这一点......

如何确定 True 和 False 值并不重要,假设它是我可以用于此的布尔变量的值。

4

2 回答 2

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 的答案是正确的方向。

于 2012-07-15T11:21:27.297 回答
4

也可以让它随机:

from random import choice
for key in total_values:
    total_values[key] = (total_values[key], choice((True, False)))
于 2012-07-15T11:22:05.443 回答