目錄
1.什么是字典
2.字典的原理
3.字典的創(chuàng)建與刪除
4.字典的查詢操作
5.字典的增、刪、改操作
6.字典的推導式
? ? ? ? 字典元素的遍歷
? ? ? ? 字典的生成式
7.字典的特點
1.什么是字典
- 字典是python內置的的數據之一,與列表一樣是一個可變序列(可變序列就是列表能執(zhí)行增刪改的操作)。
- 以鍵值對的方式存儲數據,字典是一個無序的序列,列表是一個有序序列。
- 用{}來定義字典
?key1,key2.....代表的是第幾個放入字典當中的鍵,可以看出第一個放入字典的鍵并不是第一個,因為這里存在一個hash()函數的工序,利用這個函數,計算存儲位置。所以放入字典中的鍵必須是一個不可變序列。例如:字符串,整數序列就是不可變序列,字典,列表都是可變序列。
2.字典的原理
????????字典的實現原理:python中的字典是根據Key查找value所在的位置。
3.字典的創(chuàng)建與刪除
? ? ? ? 最常用的方式:使用{},scores= {'張三':100,'李四':98,'王五':45}
? ? ? ? 使用內置函數:dict(name='jack',age=20)
'字典的創(chuàng)建方式'
# 使用{}創(chuàng)建字典
scores = {'張三': 100, '李四': 98, '王五': 45}
print(scores, type(scores))
# 使用內置函數dict()
student = dict(name='jack', age=20)
print(student, type(student))
# 空字典
d = {}
4.字典的查詢操作
? ? ? ? ? ? ? ? 獲取字典中的值第一種方式就是使用[ ],第二種就是使用get()方法。二者的區(qū)別是如果查找的鍵不存在,第一種會報錯,第二種報None
scores = {'張三': 100, '李四': 98, '王五': 45}
'獲取字典中的元素'
# 使用 []
print(scores['張三']) # 100
# print(scores['陳六']) # KeyError: '陳六'
# 使用get()方法
print(scores.get('張三')) # 100
# print(scores.get('陳六')) # None
print(scores.get('麻七', 99)) # 99 這里輸出99是因為查找的時候Value不存在時,提供的一個默認值
5.字典的增、刪、改操作
? ? ? ? key的判斷
scores = {'張三': 100, '李四': 98, '王五': 45}
'鍵的判斷'
print('張三' in scores) # True
print('張三' not in scores) # False
"======================================================"
scores = {'張三': 100, '李四': 98, '王五': 45}
del scores['張三'] # 刪除指定的鍵值對
print(scores)
# {'李四': 98, '王五': 45}
scores.clear() # 清空字典內的所有元素
print(scores)
# {}
"======================================================"
scores = {'張三': 100, '李四': 98, '王五': 45}
scores["陳六"] = 98 # 字典元素的添加
print(scores)
# {'張三': 100, '李四': 98, '王五': 45, '陳六': 98}
scores["陳六"] = 105 # 修改鍵值對的值
print(scores)
# {'張三': 100, '李四': 98, '王五': 45, '陳六': 105}
獲取字典視圖的三個方法
????????keys():獲取字典中的所有key
????????values():獲取字典中的所有value對
????????items():獲取字典中的所有key,value對文章來源:http://www.zghlxwxcb.cn/news/detail-451644.html
scores = {'張三': 100, '李四': 98, '王五': 45}
scores.keys() # 獲取所有的key
print(scores.keys(), type(scores.keys()))
# dict_keys(['張三', '李四', '王五']) <class 'dict_keys'>
print(list(scores.keys())) # 將所有的key組成的試圖轉換為列表
# ['張三', '李四', '王五']
scores.values() # 獲取所有的values
print(scores.values(), type(scores.values()))
# dict_values([100, 98, 45]) <class 'dict_values'>
print(list(scores.values())) # 將所有的value組成的試圖轉換為列表
# [100, 98, 45]
scores.items() # 獲取所有的keys,values(鍵值對)
print(scores.items())
# dict_items([('張三', 100), ('李四', 98), ('王五', 45)])
print(list(scores.items())) # 轉換之后的list類型為元組
# [('張三', 100), ('李四', 98), ('王五', 45)] # 元組
6.字典的推導式
? ? ? ? 字典元素的遍歷
scores = {'張三': 100, '李四': 98, '王五': 45}
for item in scores: # 遍歷的字典元素所有的鍵
print(item, end='\t')
# 遍歷的字典元素所有的值
for item in scores:
print(scores[item], scores.get(item))
for item in scores.values():
print(item)
? ? ? ? 字典的生成式
????????使用內置函數zip(),用于將可迭代的對象作為參數,將對象中相應的元素打包成一個元組,然后返回由這些元組組成的列表。文章來源地址http://www.zghlxwxcb.cn/news/detail-451644.html
item = ['張三', '李四', '王五']
lst = [100, 200, 300, 400, 500]
scores1 = zip(item, lst)
print(list(scores1)) # 生成的是元組組成的列表
scores1 = zip(item, lst)
print(dict(scores1)) # 生成的是字典
scores = {item: lst for item, lst in zip(item, lst)} # 在進行打包時,會以元素少的那部分為基準而生成
print(scores)
7.字典的特點
- ? ? ? ? 字典的所有元素都是一個key-value對,key不允許重復,value可以重復
- ? ? ? ? 字典的元素是無序的
- ? ? ? ? 字典的key必須是不可變對象
- ? ? ? ? 字典也可以根據需要動態(tài)伸縮
- ? ? ? ? 字典會浪費較大的內存,是一種空間換時間的數據結構
scores = {'張三': 100, '李四': 98, '王五': 45, "張三": 500, "新張三": 100}
print(scores) # 鍵不允許重復,重復的話會出現值覆蓋的情況,value是可以重復的
# {'張三': 500, '李四': 98, '王五': 45, '新張三': 100}
到了這里,關于python中的字典的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!