1. 程式人生 > >Python操作dict時避免出現KeyError的幾種方法

Python操作dict時避免出現KeyError的幾種方法

在讀取dict的key和value時,如果key不存在,就會觸發KeyError錯誤,如:

t = {
    'a': '1',
    'b': '2',
    'c': '3',
}
print(t['d'])

就會出現:

KeyError: 'd'

第一種解決方法

首先測試key是否存在,然後才進行下一步操作,如:

t = {
    'a': '1',
    'b': '2',
    'c': '3',
}
if 'd' in t:
    print(t['d'])
else:
    print('not exist')

第二種解決方法

利用dict內建的get(key[,default])

方法,如果key存在,則返回其value,否則返回default;使用這個方法永遠不會觸發KeyError,如:

    t = {
        'a': '1',
        'b': '2',
        'c': '3',
    }
    print(t.get('d'))

加上default引數:

t = {
    'a': '1',
    'b': '2',
    'c': '3',
}
print(t.get('d', 'not exist'))
print(t)

第三種解決方法

利用dict內建的setdefault(key[,default])

方法,如果key存在,則返回其value;否則插入此key,其value為default,並返回default;使用這個方法也永遠不會觸發KeyError,如:

t = {
    'a': '1',
    'b': '2',
    'c': '3',
}
print(t.setdefault('d'))
print(t)

加上default引數:

t = {
    'a': '1',
    'b': '2',
    'c': '3',
}
print(t.setdefault('d', 'not exist'))
print(t)