为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

子衿沉夜 2021-07-19 15:14:03
我有一个装满数字字符串的字典,我想将这些值中的每一个都转换为二进制。这是我尝试过的:    for k,v in ValueDict.items():         ValueDict.update(k:bin(v))但是,这不起作用。PyCharm 说“变量注释的非法目标”,我不明白这是什么意思。据我所知,变量注释是对变量类型进行“评论”的一种方式,但我不明白这与我的问题有什么关系......提前致谢!
查看完整描述

3 回答

?
ABOUTYOU

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)


查看完整回答
反对 回复 2021-07-28
?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

您需要提供一个dicttoupdate方法。

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


查看完整回答
反对 回复 2021-07-28
?
哈士奇WWW

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]}


查看完整回答
反对 回复 2021-07-28
  • 3 回答
  • 0 关注
  • 207 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号