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

Python字典报错

Python字典报错

慕神8560373 2016-12-28 14:14:13
# coding=utf-8 def init(data):     data['first'] = {}     data['middle'] = {}     data['last'] = {} def lookup(data, label, name):     return data[label].get(name) def store(data, full_name):     names = full_name.split()     if len(names) == 2: names.insert(1, '')     labels = 'first', 'middle', 'last'     for name, label in zip(labels, names):         people = lookup(data, label, name)         if people:             people.append(full_name)         else:             data[label][name] = [full_name] MyNames = {} init(MyNames) print MyNames print MyNames['first'].get('liang')  # store(MyNames, 'liang bing hui')'''C:\Python27\python.exe D:/liangbh/F/Lython/test7.pyTraceback (most recent call last):{'middle': {}, 'last': {}, 'first': {}}  File "D:/liangbh/F/Lython/test7.py", line 30, in <module>None    store(MyNames,'liang bing hui')  File "D:/liangbh/F/Lython/test7.py", line 19, in store    people = lookup(data, label, name)  File "D:/liangbh/F/Lython/test7.py", line 11, in lookup    return data[label].get(name)KeyError: 'liang''''
查看完整描述

3 回答

?
angie

TA贡献56条经验 获得超8个赞

你在 get('liang')的时候,这个键还没定义呢,当然 get 失败呀,失败了就抛出 KeyError 异常咯

查看完整回答
反对 回复 2017-01-31
  • 3 回答
  • 0 关注
  • 1582 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信