3 回答

TA贡献1812条经验 获得超5个赞
尝试使用字典理解:
print({k:bin(v) for k,v in ValueDict.items()})
或者如果版本低于 2.5:
print(dict((k:bin(v) for k,v in ValueDict.items())))
您的代码不会从工作:
中ValueDict.update(k:bin(v))
使用你的风格:
for k,v in ValueDict.items(): ValueDict.update({k:bin(v)})
要么:
for k,v in ValueDict.items(): ValueDict[k]=bin(v)

TA贡献1789条经验 获得超10个赞
您需要提供一个dict
toupdate
方法。
for k,v in ValueDict.items(): ValueDict.update({k:bin(v)})

TA贡献1799条经验 获得超6个赞
请参阅dict.update处的文档:
使用其他键/值对更新字典,覆盖现有键。返回无。
update()
接受另一个字典对象或键/值对的可迭代对象(作为元组或其他长度为 2 的可迭代对象)。如果指定关键字参数,字典,然后用这些键/值对更新:d.update(red=1, blue=2)
。
例子:
# dict expression
d = {"a":1, "b":2, "c":3}
>>> {'a': 1, 'c': 3, 'b': 2}
# multiple updates: no loop needed
d.update( {"a" : 11, "b" : 22} )
>>> {'a': 11, 'c': 3, 'b': 22}
# multiple adds: no loop needed (also no '' around keys)
d.update( A = 111, B = 22 )
>>> {'a': 11, 'A': 111, 'c': 3, 'b': 22, 'B': 22}
# updating all keys using loop
for k,v in d.items():
d[k]=v*2
>>> {'a': 22, 'A': 222, 'c': 6, 'b': 44, 'B': 44}
# add values to a list if same keys and not yet in
# providing an existing key here would overwrite that one
new_ones = ( ("X",42), ("X",4711) )
for k,v in new_ones:
entry = d.setdefault(k,[])
entry.append(v)
>>> {'a': 22, 'A': 222, 'c': 6, 'b': 44, 'B': 44, 'X': [42, 4711]}
# no loop - update from iterable of key/value pairs
new_ones = ( ("i",42), ("j",4711) )
d.update(new_ones)
>>> {'a': 22, 'A': 222, 'c': 6, 'b': 44, 'i': 42, 'j': 4711, 'B': 44, 'X': [42, 4711]}
添加回答
举报