Python的字典get方法:從字典中獲取一個值
阿新 • • 發佈:2019-01-31
從字典中獲取一個值,問題:
你需要從字典中獲得一個值,不要處理在字典裡找不到你所需要的鍵值的異常。那就是字典的get方法。
如果你有一個字典,d = {'key':'value'}
在一個異常安全的方法中,你能夠寫一個從d中提取‘key’的值的測試
if d.has_key('key'): # or, in Python 2.2 or later: if 'key' in d:
print d['key']
else:
print 'not found'
然而有一個更簡單的方法
print d.get('key', 'not found')
[討論 ]
想從一個字典獲得一個值,但是首先要確信這個值是否在這個字典裡?使用簡單有效的其實是get方法。
如果你試著用象d[x] 那樣的語法來獲得一個值,並且x的值不是字典d的鍵值, 你的嘗試將丟擲一個KeyError異常。
這個是經常有用的。如果你期望x的值是d中的一個鍵值,一個異常是通知你犯錯了的正確途徑。(那就是說,你需要除錯你的程式了)
然而,關於它,你經常需要更多的假設:直到你知道x的值或者是或不是d中的一個鍵值。
在這種情況下,忘掉has_key 方法或者try/except語句。
取而代之的,是使用get方法。
如果你呼叫d.get(x) ,沒有異常被丟擲。如果x是d的一個鍵值,你得到d[x]。
如果不是,你得到None(你能檢查或者傳播它)。
當x不是d的鍵值的時候,如果None不是你想要的,呼叫d.get(x, somethingelse) 來替代。
在這種情況下,如果x不是一個鍵值。你將得到somethingelse的值
Get是簡單,有效的機制,python的文件很好的解釋了它。
但是不知道它的人的數量令人驚訝。當抽取REQUEST字典的一些值的時候,這個慣用方法在zope中也是相當普遍的。
你需要從字典中獲得一個值,不要處理在字典裡找不到你所需要的鍵值的異常。那就是字典的get方法。
如果你有一個字典,d = {'key':'value'}
在一個異常安全的方法中,你能夠寫一個從d中提取‘key’的值的測試
if d.has_key('key'): # or, in Python 2.2 or later: if 'key' in d:
print d['key']
else:
print 'not found'
然而有一個更簡單的方法
print d.get('key', 'not found')
[討論 ]
想從一個字典獲得一個值,但是首先要確信這個值是否在這個字典裡?使用簡單有效的其實是get方法。
如果你試著用象d[x] 那樣的語法來獲得一個值,並且x的值不是字典d的鍵值, 你的嘗試將丟擲一個KeyError異常。
這個是經常有用的。如果你期望x的值是d中的一個鍵值,一個異常是通知你犯錯了的正確途徑。(那就是說,你需要除錯你的程式了)
然而,關於它,你經常需要更多的假設:直到你知道x的值或者是或不是d中的一個鍵值。
在這種情況下,忘掉has_key 方法或者try/except語句。
取而代之的,是使用get方法。
如果你呼叫d.get(x) ,沒有異常被丟擲。如果x是d的一個鍵值,你得到d[x]。
如果不是,你得到None(你能檢查或者傳播它)。
當x不是d的鍵值的時候,如果None不是你想要的,呼叫d.get(x, somethingelse) 來替代。
在這種情況下,如果x不是一個鍵值。你將得到somethingelse的值
Get是簡單,有效的機制,python的文件很好的解釋了它。
但是不知道它的人的數量令人驚訝。當抽取REQUEST字典的一些值的時候,這個慣用方法在zope中也是相當普遍的。