形式:
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 逆過程 * zipm =[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必須是不可變型別,如 數字 字串 元...