字典get方法:從字典中擷取一個值

來源:互聯網
上載者:User

從字典中擷取一個值  

此文章轉載於http://blog.sina.com.cn/s/blog_6be89284010183xm.html

問題  :

你需要從字典中獲得一個值,不要處理在字典裡找不到你所需要的索引值的異常。  

那就是字典的get方法。 如果你有一個字典  

Python代碼 
  1. d = {'key':'value'}   

 



在一個異常安全的方法中,你能夠寫一個從d中提取‘key’的值的測試  

Python代碼 
  1. if d.has_key('key'): # or, in Python 2.2 or later: if 'key' in d:   
  2.   print d['key']   
  3. else:   
  4.   print 'not found'   

 

然而有一個更簡單的方法  
print d.get('key', 'not
found') 

Python代碼 
  1. 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中也是相當普遍的。  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.