【python】dict使用方法和快捷查找

字典的用法,dict的查找特別快捷。如果我們的項目經常用到搜索某些數據,最好用dict類型。

認識dict

  1. peter@智普教育:~$ python
  2. Python 2.7.3 (default, Aug 1 2012, 05:16:07)
  3. [GCC 4.6.3] on linux2
  4. Type "help", "copyright", "credits" or "license" for more information.
  5. >>> a={"name":"jike","age":30,"job":"python優秀工程師","level":"智普小天才"}
  6. >>> print a["level"]
  7. 智普小天才
  8. >>> print a["age"]
  9. 30

這就是字典,今年30歲的python工程師是一個天才。 和數據庫結合非常完美。製作一個電話聯繫人也很實用。

上面的"name","age"等叫做key;

"jike",30,"智普小天才",叫做value。

獲取所有的keys。

  1. >>> a={"name":"jike","age":30,"job":"python優秀工程師","level":"智普小天才"}
  2. >>> b = a.keys()
  3. >>> print b
  4. ['job', 'age', 'name', 'level']
  5. >>> type(b)
  6. <type 'list'>
  7. >>> c = a.values()
  8. >>> print c
  9. ['python\xe4\xbc\x98\xe7\xa7\x80\xe5\xb7\xa5\xe7\xa8\x8b\xe5\xb8\x88', 30, 'jike', '\xe6\x99\xba\xe6\x99\xae\xe5\xb0\x8f\xe5\xa4\xa9\xe6\x89\x8d']
  10. >>> type(c)
  11. <type 'list'>
  12. >>>

上面的代碼,你看懂了嗎? 請解釋一下。

注意:上面print c的時候有些亂碼是python控制檯的原因。

給dict添加內容

  1. a={}
  2. a['email']='[email protected]'

這樣做可以嗎?請試試。 list可以做如下動作嗎?爲什麼?

  1. list=[]
  2. list[5]=10

刪除操作

  1. peter@智普教育:~$ python
  2. Python 2.7.3 (default, Aug 1 2012, 05:16:07)
  3. [GCC 4.6.3] on linux2
  4. Type "help", "copyright", "credits" or "license" for more information.
  5. >>> a={"name":"jike","age":30,"job":"python優秀工程師","level":"智普小天才"}
  6. >>> for b in a: print b
  7. ...
  8. job
  9. age
  10. name
  11. level
  12. >>> a.pop("name")
  13. 'jike'
  14. >>> print a
  15. {'job': 'python\xe4\xbc\x98\xe7\xa7\x80\xe5\xb7\xa5\xe7\xa8\x8b\xe5\xb8\x88', 'age': 30, 'level': '\xe6\x99\xba\xe6\x99\xae\xe5\xb0\x8f\xe5\xa4\xa9\xe6\x89\x8d'}
  16. >>>
  17. >>> del a["job"]
  18. >>> print a
  19. {'age': 30, 'level': '\xe6\x99\xba\xe6\x99\xae\xe5\xb0\x8f\xe5\xa4\xa9\xe6\x89\x8d'}

如何判斷key是否存在?

  1. >>> a["age"]
  2. 30
  3. >>> a["name"]
  4. Traceback (most recent call last):
  5. File "<stdin>", line 1, in <module>
  6. KeyError: 'name'

直接用會出錯。

用for key in a: ?

還有更好的方法嗎?

答案

code-comment: n1761:a.has_key("name")

獲取鍵值的方法

  1. a.get("age")
  2. a["age"]

區別是什麼?

a.get比a["name"]更安全,如果key不存在。get函數返回空None,但不會出錯。

update函數的用法

  1. >>> print a
  2. {'age': 30, 'level': '\xe6\x99\xba\xe6\x99\xae\xe5\xb0\x8f\xe5\xa4\xa9\xe6\x89\x8d'}
  3. >>> a1={"hello":1}
  4. >>> a.update(a1)
  5. >>> print a
  6. {'age': 30, 'hello': 1, 'level': '\xe6\x99\xba\xe6\x99\xae\xe5\xb0\x8f\xe5\xa4\xa9\xe6\x89\x8d'}

獲取key,value的另一個方法

  1. In [4]: d.items()
  2. Out[4]: [(1, 'a'), (2, 'b'), (3, 'c')]
發佈了41 篇原創文章 · 獲贊 0 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章