稍微比較全的那種字典

2022-08-20 15:39:09 字數 2234 閱讀 6946

無序的字典用於儲存大量資料,字典要比列表快,將資料和資料之間進行關聯

lst=["劉德華","張學友","林俊傑","胡歌"]

lst2=["帥","酷","厲害","好"]

print(lst[0]+lst[0])

結果劉德華 帥

定義乙個字典:

dic=

字典中每乙個逗號分割叫乙個元素"宋佳」是乙個鍵:男是乙個值--鍵值對

dic=

print(dic)

結果

字典的鍵:

可雜湊的--不可變的資料型別--避免雜湊衝突使用了 開放定址法

不可雜湊的--可變的資料型別

字典的值可以任意,字典的鍵要求唯一 如果有重複後面的值將會覆蓋前面的值 字典是可變的型別資料 可以修改

暴力新增

2.setdefault

dic=

1.暴力新增

dic["喜好"]="唱跳"

print(dic)

結果## dic[鍵]=[值]

2.setdefault

dic.setdefault("喜好","唱跳")

鍵 值

這個鍵去字典查詢,如果不存在 就新增 ;存在 就不新增

del通過字典鍵 刪除鍵值對

pop 通過字典的鍵 刪除鍵值對 返回值:返回的是被刪除的值

clear 清空 清空字典

dic=

del.dic["喜好"] #刪除鍵 刪除鍵值對

dic=

dic.pop("分數") #刪除鍵 達到刪除鍵值對效果

dic=

dic.clear() #清空列表

dic=

dic["分數"]=60

# 字典中沒有某個鍵值的時候就是新增 當鍵在字典中存在就是修改

有則改 無則加

update: 更新

dic=

dic.update(dic)

# uodate括號中的字典級別高於update前面的字典

dic=

for i in dic

print(i)

# 迴圈獲取的是字典中每個鍵值對的鍵

getprint(dic.get("宋佳"))

# 通過鍵獲取值 ,如果不存在字典中返回none 不存在就會報錯

存在就是顯示

dic=

print(dic.keys()) #高仿列表--dict keys(['宋佳'分數','性格']) 獲取的是鍵

print(dic.values()) 獲取的是鍵

for i in dic:

print(i) #獲取的是鍵

print(i,dic.get(i))# 獲取所有鍵和值

## 高仿列表支援for迴圈 不支援索引 :

for i in dic.keys():

print(i)

print(i,dic.get(i))

print(del.keys()[0])

#vluse獲取字典所有的值 keys獲取所有鍵 items獲取的是鍵和值

print(dic.items())

a,b=10,20

a,b=b,a

print(a,b)

結果a=20

b=10

a,_,b=(3,4,5)

print(a,b)

a=3b=5 #等號後面的值和前面的變數名要一一對應

a=10,12 #本質就是乙個元組

print(a)

(10,12)

a,b=

print(a,b)

1 2

a,b="23"

print(a,b)

2 3

###keys--獲取字典中所有的鍵 存放在乙個高仿列表中

values--獲取字典中所有的值 存放在乙個高仿列表中

items --獲取字典中所有的鍵和值 存放在乙個高仿列表裡的元祖

#!!!獲取每個元素的鍵和值

for k,v in dic.items():

print(k,v)

字典的內建方法比較

clear 可以清空乙個字典,還有一種方式是直接給變數賦值為乙個空的字典。a e a e a a e 直接給變數名賦值為乙個空字典並沒有改變原來的字典,只是重新分配了乙個新的字典給a。a e a e a.clear a e get 獲得給定健的值,當鍵不存在時返回none。a a.get b 1 a...

c 全排列的字典序

背景 7 3 輸出全排列 20 分 請編寫程式輸出前n個正整數的全排列 n 10 並通過9個測試用例 即n從1到9 觀察n逐步增大時程式的執行時間。輸入格式 輸入給出正整數n 10 輸出格式 輸出1到n的全排列。每種排列佔一行,數字間無空格。排列的輸出順序為字典序 輸入樣例 3輸出樣例 123132...

建立字典的幾種方式(全)

1,建立空字典 dic type dic output 2,直接賦值建立字典 dic 3,通過dict將二元組列表建立為字典 list aaa 1 bbb 2 ccc 3 dic dict list 4,通過dict和關鍵字引數 指的等式例如 spam 1 建立 list dict aaa 1,bb...