Python之dict字典詳解

2022-08-26 18:57:11 字數 4069 閱讀 2416

python內建了字典:dict的支援,dict全稱dictionary,在其他語言中也稱為map,字典是另 一種可變容器模型,且可儲存任意型別物件。具有極快的查詢速度。

字典是一種通過名字或者關鍵字引用的得資料結構,其鍵可以是數字、字串、元組,這種結構型別也稱之為對映。字典型別是python中唯一內建的對映型別,基本的操作包括如下:

(1) len() : 返回字典中 鍵:值對 的數量

(2) d[k] : 返回關鍵字對應的值;

(3) d[k] = v : 將值關聯到鍵值k上; 

(4) del d[k ] :刪除鍵值為k的項; 

(5) key in d : 鍵值key是否在d中,是返回true,否則返回false

d = 

],"k4": (11, 22, 33, 44)

}

d =

d1 =   # 正確

d2 = }  # 錯誤! 因為列表 布林值 字典都是可變的,不能作為鍵(key)

d3 = 

print(d)

# 列印結果可能是這樣

# 也有可能是這樣

# 甚至可能是這樣

......

v = d["k1"]  # 取出k1對應的value

v1 = d["k3"][1]["kk3"][0]  # 取出kk3對應的value中的11

print(v, v1)

2.不可通過切片方式獲取鍵值對,因為字典無序

3.for迴圈取key和value 

d4 = 

# 迴圈所有的key (或這麼寫:for item in d4.keys():)

for item in d4:

print(item)

列印結果:

year

month

day# 迴圈所有的value

for item in d4.values():

print(item)

列印結果:

2018318

# 迴圈所有的key:value

for item in d4.keys():

print(item, ':', d4[item])

for k, v in d4.items(): # 用items方法 k接收key ,v接收value

print(k, v)

1.函式(3):

1.str(dict)      #輸出字典可以列印的字串表示

d6 = 

content = str(d6)

print(content)

列印結果:

2.len(dict)      #計算字典內元素的個人,即鍵的總數

d7 = 

count = len(d7)

print(count)

列印結果:3

3.type(variable)   #返回輸入的變數型別,如果變數型別是字典就返回字典

d8 = 

ty = type(d8)

print(ty)

列印結果:

2.方法()

1.刪除 

d4 = 

del d4[9102] # 刪除元素 9102:bibi

print(d4) # 列印結果:

d4.clear()    # 清空字典

print(d4) # 列印結果:{}

del d4      # 刪除字典

2.items()方法,迴圈獲取key和value

d4 = 

for k, v in d4.items(): # 用items方法 k接收key ,v接收value

print(k, v)

3.keys()方法,迴圈獲取所有key

d4 = 

for item in d4.keys(): # 迴圈所有的key

print(item)

4.values()方法,迴圈獲取所有value

d4 = 

for item in d4.values(): # 迴圈所有的values

print(item)

5.copy(淺拷貝)

d4 = 

dict2 = d4.copy()

print ("新複製的字典為 : ",dict2)

6.fromkeys()  建立乙個新字典,fromkeys(*args, **kwargs) 以*args中元素做字典的鍵,**kwargs為字典所有鍵對應的初始值

new_d = ('year', 'month', 'day')

dict1 = dict.fromkeys(new_d)

print("新的字典 : %s" % str(dict1))

dict1 = dict.fromkeys(new_d, 8)

print("新的字典 : %s" % str(dict1))

列印結果:

新的字典 :

新的字典 :

7.get()方法根據key獲取值 get(self, k, d=none) 引數:k:待操作的鍵(key), d:預設為none,在獲取鍵的時候,如果不存在就返回 none 或指定什麼就返回什麼

d9 = 

v = d9.get('day')

print('key存在時:', v)

v1 = d9.get('hour')

print('key不存在時:', v1)

v2 = d9.get('hour', 1234)

print("key不存在時並指定返回值:", v2)

列印結果:

存在: 18

key不存在時: none

key不存在時並指定返回值: 1234

8.pop()方法刪除指定的key,pop(self, k, d=none)  引數: k:待刪除的key    d:如果待刪除的key,則返回none ,或指定什麼返回什麼  

d9 = 

v = d9.pop('day')

print('key存在時:', v) # key存在時: 18

v1 = d9.pop('hour')

print('key不存在時:', v1) # key不存在時報錯

v2 = d9.pop('hour', 1234)

print("key不存在時並指定返回值:", v2) # key不存在時並指定返回值: 1234

9.popitem()方法,隨機刪除乙個鍵值對

d10 = 

v1 = d10.popitem()

k, v = d10.popitem()

print(v1, k, v) # 列印結果:('day', 18) month 3

10.setdefault 方法,給字典設定(增加)新的鍵,存在就不設定(獲取當前key對應的值),不存在就設定並返回當前key對應的值  setdefault(self, k, d=none) 引數:k:待設定(新增)的key   d:預設為空,可以指定value值

d11 = 

v = d11.setdefault('hour', '10') # 如果待加入的key跟字典內重複,則不會新增

print(d11, v) # 列印結果: 10#

11.update方法 ,更新字典 update(self, e=none, **f)

d12 = 

d12.update() # 第一種寫法

# d12.update(year=2019, day=20, hour=10) # 第二種寫法

print(d12) # 列印結果: # 已存在的key就覆蓋,不存在的key就新增進字典

Python字典 dict 詳解

三.字典 dict 的一些基本操作 四.字典 dict 的常見操作 五.字典三種取值方式 六.字典的遍歷 python字典是另一種可變容器模型,可儲存任意型別物件。如字串 數字 元組等其他容器模型 因為字典是無序的所以不支援索引和切片。格式 字典名 元素以鍵值對存在 key 鍵值 value 實值 ...

Python基礎之字典dict

字典的特性,鍵值對出現 字典的定義 字典的key不可重複,如果key重複的話,預設最後乙個元素新增到字典中,多個元素之間用逗號分割。字典是無序的 定義乙個字典 例 dic 字典的常用方法 fromkeys 引數是乙個可迭代型別,把每乙個迭代物件變成字典的key,value預設為none 可以修改 例...

python基礎之字典 dict

字典 dict 是一種key value 字典是無序的,不能像str list 一樣 通過index查詢資料 字典內可以迴圈巢狀list dict等 列表key是唯一的,值不限制 學號 姓名 info 新增 修改 info 004 1 查詢print info.get 001 通過key獲取valu...