2012-10-18 55 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)