Python基礎(三)字典與集合

字典

Python中的字典可以看做是一種鍵值對錶。其底層原理類似於Java中的HashMaP,都是散列表。其中每個數組的單元叫做bucket,每個bucket有兩個部分,一個是鍵對象的引用。一種是值對象的引用。當
字典的特點:

  1. 無序,只能通過鍵來找到值
  2. 只能存儲不可變的對象,例如整數,浮點數,字符,元組。但是列表,字典,集合這類可變對象不能作爲鍵值。

字典的創建

  1. 可以通過{}或者dict()來創建對象
    a={‘name’=‘123’};
    b={name=‘123’};
    a=dict([(“name”,“gaoqi”)])
  2. 通過zip() 方式創建字典對象
    k=[‘name’,‘age’];
    v=[’‘123’’,‘123’];
    a = dict(zip(k,v));
  3. 通過fromkeys創建值爲空的字典
    a = dict.fromkeys([name’,‘boy’]);

字典元素的訪問

  1. 通過a[key]的方式返回,在訪問空key的時候會出現異常
  2. 通過get返回對象,返回一個空值
  3. 通過items方法列出所有的鍵值對
  4. 通過keys,valuse方法列出所有的鍵值,所有values值
  5. 通過 in 檢測鍵值是否在一個字典中,返回布爾值
    “name” in a
    >>>true

字典添加,修改,刪除

  1. a[key] = newvalue 修改key對應的values,如果鍵不存在則新增。
  2. update()方法將新字典的所有鍵值對全部加到舊字典對象上
  3. 可以用del(a[“key”])刪除對應的值。

序列解包

序列解包可以用於元組,列表,字典。序列解包可以讓我們方面的對多個變量賦值,序列解包用於字典時,默認是對鍵進行操作;如果需要對鍵值進行操作,則需要使用items();如果需要對“值”進行操作,則需要使用values()

  1. x,y,z = (10,20,30);即x=10,y=20…
  2. s = {“name”:“123”,“age”,18}; a,b,c = s即默認將鍵值賦值給a,b,c。使用items將鍵值對付給a,b,c

總結

  1. 作爲鍵的元素必須可以計算散列值,其中數字,字符串,元組都是可以計算的。
    自定義對象需要支持下面三點:
    - 支持hash對象
    - 支持通過_eq_()方法檢測相等性
    - 若 a== b 等於真,則hash(a) == hash(b) 也應該等於true
  2. 字典在內存中消耗量大
  3. 鍵查詢速度快O(1)
  4. 在達到字典容量的三分之二的時候會導致次序發生變化,因此不要在遍歷時進行字典的修改

集合

集合無序可變,元素不能重複,類似於Set。可以通過set()方法將列表,元組轉化爲集合。

創建與刪除

  1. 通過{}後者set方法創建集合。
  2. remove或者clear清空集合

集合的操作

  1. 並集:a|b ,a.union(b)
  2. 交集:a&b,a.insertion(b)
  3. 差集:a-b,a.difference(b)

分支選擇

對於Python中,對於false,0,0.0,空值,none,空序列對象,空range對象,空迭代對象,都認爲爲false。對於其他合法的表達式都可以看做是條件表達式。但是條件表達式中不能存=

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章