在python中将单值字典转换为多值字典

NIl*_*rma 2 python dictionary

我有这本字典

total_values = {'a':1, 'b':2, 'c':3}
Run Code Online (Sandbox Code Playgroud)

现在我想将这个字典转换为多值字典.喜欢

total_values = {'a':(1,False), 'b':(2, True), 'c':(3, True)}
Run Code Online (Sandbox Code Playgroud)

请告诉我最狡猾的方式....

如何确定True和False值无关紧要,假设它是一个布尔变量的值,我可以用它来实现.

Mar*_*tos 6

在2.6中:

dict( (k, (v, <boolean expression>)) for (k, v) in total_values.iteritems() )
Run Code Online (Sandbox Code Playgroud)

在2.7中:

{ k:(v, <boolean expression>) for (k, v) in total_values.iteritems() }
Run Code Online (Sandbox Code Playgroud)

在3.0中,(感谢@ C2H5OH):

{ k:(v, <boolean expression>) for (k, v) in total_values.items() }
Run Code Online (Sandbox Code Playgroud)

请注意,这些解决方案创建了一个全新的词典 如果你想修改现有的字典,@ MartijnPieters的答案是正确的.

  • 在Python 3.0中就像在2.7中一样,但你需要用`.items()`来改变`.iteritems()`.而且,`for`关键字后面的`(k,v)`周围的括号在所有版本中都是可选的. (3认同)