Python - 通过字典进行类型转换循环

我有一个装满数字字符串的字典,我想将这些值中的每一个都转换为二进制。这是我尝试过的:

    for k,v in ValueDict.items():
        ValueDict.update(k:bin(v))

但是,这不起作用。PyCharm 说“变量注释的非法目标”,我不明白这是什么意思。据我所知,变量注释是对变量类型进行“评论”的一种方式,但我不明白这与我的问题有什么关系......

提前致谢!


子衿沉夜
浏览 208回答 3
3回答

ABOUTYOU

尝试使用字典理解: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)

至尊宝的传说

您需要提供一个dicttoupdate方法。for k,v in ValueDict.items():     ValueDict.update({k:bin(v)})

哈士奇WWW

请参阅dict.update处的文档:使用其他键/值对更新字典,覆盖现有键。返回无。update()接受另一个字典对象或键/值对的可迭代对象(作为元组或其他长度为 2 的可迭代对象)。如果指定关键字参数,字典,然后用这些键/值对更新:d.update(red=1, blue=2)。例子:# dict expressiond = {"a":1, "b":2, "c":3}>>> {'a': 1, 'c': 3, 'b': 2}# multiple updates: no loop neededd.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 loopfor 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 onenew_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 pairsnew_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]}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python