Python3學習7 字典及其常用方法

2021-09-10 14:08:11 字數 4138 閱讀 3098

形式:

1.訪問方式通過鍵來獲取對應的值

2.字典是無序的,不能切片

3.鍵不能重複,值可以重複

4.鍵值必須為不可變型別,例如:數字、字串、元組

5.字典為可變型別

d1 =

# typeerror: unhashable type: 'list'

建立

d1 =

建立空字典

# 方法1

d1 =

# 方法2

d1 =

dict

()

遍歷

d1 =

# 方法1

for key, value in d1.items():

print

(key, value)

# 方法2

for key in d1.keys():

print

(key, d1[key]

)# 方法3

for key in d1:

# 最常用

print

(key, d1[key]

)"""輸出:

k1 23

k3 56

k2 [34, 89]

k1 23

k3 56

k2 [34, 89]

k1 23

k3 56

k2 [34, 89]

"""

d =

dict()

d['k3']=

45d1=

d.update(d1)

print

(d)#

pop()

d1=

d1.pop(

'k1'

)# 指定鍵值

print

(d1)

#

popitem() 隨機刪除

d1=

d1.popitem(

)# 隨機刪除

print

(d1)

#

del

d1=

del d1[

'k1'

]print

(d1)

# del d1

print

(d1)

# nameerror: name 'd1' is not defined

clear() 清空

d1=

d1.clear(

)# 清空

print

(d1)

# {}

get(),items(),keys(),values()

d1=

print

(d1.get(

'k8'))

# 根據鍵值查value值

# none

print

(d1.items())

# 以列表形式,返回可遍歷的元組----key和value

# dict_items([('k4', 67), ('k1', 12), ('k2', 34), ('k3', 56)])

print

(d1.keys())

# dict_keys(['k4', 'k1', 'k2', 'k3'])

print

(d1.values())

# dict_values([67, 12, 34, 56])

把乙個列表、元組、字典的key賦給另乙個字典

元組:

k =

('k1'

,'k2'

,'k3'

)# 元組 列表都行

d2 =

dict

.fromkeys(k)

print

(d2)

#

字典:

d1=

v = d1.fromkeys(

['k1'

,'k2'

,'k8'],

'aa'

)print

(d1)

# print

(v)#

如果key存在,就返回value,不存在就建立

d1=

t = d1.setdefault(

'k2'

)print

(d1)

print

(t)"""輸出

34"""

d1=

t = d1.setdefault(

'k8'

)t2 = d1.setdefault(

'k9'

,'aa'

)print

(d1)

print

(t)print

(t2)

"""輸出:

none

aa"""

zip 從引數中的多個迭代器中取出元素組成乙個新的迭代器

l1 =

['a'

,'b'

,'c'

,'d'

]l2 =[1

,2,3

,4]d =

dict

(zip

(l1, l2)

)print

(d)"""輸出

"""

3.1 行列相同,正常對應位置組合
m =[1

,2,3

]n =

['a'

,'b'

,'c'

]v =

list

(zip

(m, n)

)print

(v)# [(1, 'a'), (2, 'b'), (3, 'c')]

3.2 行列不同,以最小的行列組合
m =[1

,2]n =

['a'

,'b'

,'c'

]v =

list

(zip

(m, n)

)print

(v)# [(1, 'a'), (2, 'b')]

3.3 逆過程 * zip
m =[1

,2,3

]n =

['a'

,'b'

,'c'

]v =

list

(zip

(m, n)

)# zip 打包

print

(v)# [(1, 'a'), (2, 'b'), (3, 'c')]

v2 =

list

(zip

(*v)

)# * zip 拆包

print

(v2)

# [(1, 2, 3), ('a', 'b', 'c')]

3.4 小結

zip不能直接輸出,要轉成列表、字典或其它形式,例如:list(zip(arg1, arg2))

m =[1

,2,3

]n =

['a'

,'b'

,'c'

]v =

zip(m, n)

print

(type

(v))

#

zip可以遍歷

a =[1

,2,3

]b =[4

,5,6

]for m in

zip(a, b)

:print

(m)# 乙個引數出來的是元組

"""輸出:

(1, 4)

(2, 5)

(3, 6)

"""for m, n in

zip(a, b)

:print

(m * n)

# 4 10 18

python3字典遍歷 python3字典遍歷

python版本 python3.7 info infog.get name 得到字典info中name的值 info.keys 得到字典info中所有的鍵,結果是乙個物件 dict keys name age 需要注意在python2中該操作得到的是乙個列表 遍歷key for temp in i...

python3字典排序

說實話,對字典進行排序,這個說法本身就有問題,實際上,你無法對操縱字典說,字典,在你的底層實現裡,你就得按照我指定的順序來排列,如果這樣的話,字典就喪失了它的速度優勢,它也不是乙個字典了.好了,廢話不多說,我這裡稍微記錄一下我的做法吧.python2裡面原來是有dict.iteritems這樣乙個函...

python3 字典操作

dictionary 字典 裝下整個世界 字典是python中的唯一的對映型別,採用鍵值對的形式儲存資料 key value python對key進行雜湊函式運算,根據計算結果決定value儲存的位址,所以字典是無序儲存的,且key必須是可雜湊的。可雜湊表示key必須是不可變型別,如 數字 字串 元...