Python 字典键值获取问题

将字典装入列表后,使用for遍历列表中的字典,使用dict.get()可以获取键值,但是使用dict['key']无法获取键值,这是因为啥?

题主代码怎么样的?for key in dict,key是键名称,用dict[key]获取,而不是dict['key'],去掉引号

img

dict={'a':1,'b':2}
for key in dict:
    print(key,dict[key])

for key,value in dict.items():
    print(key,value)

这样遍历列表中的字典:

a=[{1:'a'},{2:'b'}]
for dict in a:
    for key in dict:
        print(dict[key])

img

如果你用dict['编号’],这种形式,那么字典中对应也有引号才能用

a={'1':'c'}
print(a['1'])

可能是把dict数据类型与变量名混淆了,把要处理的字典赋值给一个变量,取字典健值时用:变量名[key],例如:

mydict = {"编号":3,"数据":5}
print(mydict['编号'])
#3

你是不是列表内有的字典中的'编号'键名写错了。
dic['编号'] 和dic.get('编号')的区别是:
用dic['编号'] 获取键值时,如果字典中没有找到'编号'键名会直接报错。
用dic.get('编号') 获取键值时, 如果字典中没有找到'编号'键名,不会直接报错,而是默认返回None。(也可以指定没有找到键名时的返回值,比如dic.get('编号',0)就是当没有找到键名时返回0 )


li=[
    {"编号":'001'},
    {"编   号":'002'}, #编号写错了
    {"编号":'003'}
]
for dic in li:
    print(dic.get('编号')) #列表中第二个字典中没有找到'编号'键名,会返回None
    #如果改成 print(dic['编号'] ) 当没有找到'编号'键名会直接报错

如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632