1. 程式人生 > >python3字典

python3字典

span ble key 無序集合 使用 指定 參數 value 存取

字典

字典是另一種可變容器模型,且可存儲任意類型對象。

除了列表以外,字典是也許是python中最靈活的內置數據結構,如果把列表看成有序的集合,那麽字典可以當成無序的集合。

他們的主要差別在於:字典當中的元素是通過鍵來存取的,而不是通過偏移量

作為內置類型,字典可以取代許多搜索算法和數據結構,python字典的主要的屬性如下:

通過鍵而不是偏移量讀取

  字典有時又叫做關聯數組或散列表。它們通過鍵將一系列值連接起來,這樣可以使用鍵從字典總取出值。

任意對象的無序集合

  保存在字典中的數據沒有特定的順序。鍵提供了字典中象征性(而非物理性)的位置

可變長,異構,任意嵌套

  與列表類似,可在原處增長或縮短,它們可以包含任意類型的對象,而且支持任意深度的嵌套

可變映射類型

  通過給鍵賦值,字典可以在原處修改,但是不支持字符串或列表的序列操作,因為字典是無序集合

對象引用表(散列表)

  如果說列表是支持位置讀取對象引用數據,那麽字典是支持鍵讀取的無序對象引用表

字典的每個鍵值(key-->value)對用冒號(:)分割,每個對之間用逗號(,)分割,整個字典包括在花括號({})中

d = {key1 : value1, key2 : value2 }
鍵必須是唯一的,但值則不必。

或者通過dict({key:value})的方式創建字典
值可以取任何數據類型,但鍵必須是不可變的,如字符串,數字或元組。

訪問值:
  通過鍵訪問 print(dic[‘list‘]) 返回:[‘list1‘,‘list2‘]


  print(dic[12]) 返回:‘字符串12‘
修改或添加:
  操作已有的鍵是修改,操作沒有的鍵是添加
  dic[‘list‘]=‘只有一個‘ #修改
  dic[‘Age‘]=17 #添加一個監鍵值對
刪除字典/元素或清空:
  del dic[‘list‘] 清除鍵為“list”的元素
  del dic 刪除字典
  dic.clear() 清空字典
特性:
  鍵是唯一的,如果有兩個相同的鍵,後面的會覆蓋前面的
  鍵不可變,可以用數字,字符串或元組充當


內置函數和方法:
  len(dict) 返回元素個數,鍵的總數
  str(dict) 輸出字典,以可打印的字符串表示


  type(variable) 返回元素或變量的數據類型
  key in dict 如果鍵在字典裏,返回True
  clear() 清空字段所有元素
  copy() 返回一個字典的復制
  keys() 以列表返回一個字典所有的鍵
  values() 以列表返回字典中的所有值
  get(key,default==None) 返回指定鍵的值,如果值不存在字典中,返回default值
  setdefault(key,default=None) 和get()類似, 但如果鍵不存在於字典中,將會添加鍵並將值設為default
  update(dict) 把字典dict2的鍵/值對更新到dict中
  items() 以列表返回可遍歷的(鍵,值)元組數組

其他字典方法

  字典方法提供了多種工具字典values和items方法分別返回字典值的列表和(key,value),可以把它們放在list中調用

>>> dic={"name":南希,"age":17}
>>> list(dic.values())
[南希, 17]
>>> list(dic.items())
[(name, 南希), (age, 17)]

  然而如果當讀取讀取的鍵不存在是,將會返回一個默認的None值

>>> print(dic.get("gender"))
None

  dict的update方法類似合並,它和從左到右的順序無關,它把參數字典的值合並到調用者字典中,然而盲目的update可能會導致覆蓋相同的鍵值

dic2={"gender":""}
>>> dic.update(dic2)
>>> dic
{name: 南希, gender: , age: 17}


字典使用註意:

  序列運算無效:即不可使用dic[0]來使用,她會拋出一個keyError的異常

  對新索引賦值會添加項:添加字典中未出現的鍵值會新建這個鍵值

  鍵不一定總是字符串:可以是數字,字符串,元組等

關於列表和字典的用法技巧將在對應文章講解

更多的用法及描述還是需要查看python的官方文檔。

python3字典