python3字典
字典
字典是另一種可變容器模型,且可存儲任意類型對象。
除了列表以外,字典是也許是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字典