網站首頁 編程語言 正文
前沿
Python字典是一種可變容器模型,且可存儲任意類型對象,如字符串、數字、元組等其他容器模型。
字典的每個鍵值key=>value對用冒號 : 分割,每個對之間用逗號,分割,整個字典包括在花括號{}中 ,格式如下: {key1 : value1, key2 : value2 }
字典操作
創建字典
字典由鍵和值組成,字典中所有鍵值均要放在 大括號 {} 里面,鍵與值之間通過冒號 : 分割,而每一對鍵值之間則通過 逗號 , 間隔起來,其格式如下:
dic1 = {"a": "天貓", 2: "京東", "c": "拼多多", "C": "PDD"}
需要注意的是,字典中的鍵必須是唯一的,同時字典的鍵必須是不可變對象,如 字符串、數字 等,而鍵對應的值,則可以是任意數據類型。
嵌套字典
myfamily = {
"child1" : {
"name" : "Phoebe Adele",
"year" : 2002
},
"child2" : {
"name" : "Jennifer Katharine",
"year" : 1996
},
"child3" : {
"name" : "Rory John",
"year" : 1999
}
}
dict() 創建字段
thisdict = dict(brand="Porsche", model="911", year=1963)
# 請注意,關鍵字不是字符串字面量
# 請注意,使用了等號而不是冒號來賦值
print(thisdict)
訪問字典中的值
在字典中,我們需要通過字典的鍵來訪問其對應的值。
通過 dict[key] 取值
dict1 = {"name": "wintest", "age": 13}
print(dict1["name"])
如果鍵不存在,那么取值時就會報錯:KeyError: ‘xxx’
通過 get(key) 取值
dict1 = {"name": "wintest", "age": 13}
print(dict1.get("name"))
如果鍵不存在,那么取值時會返回 None ,并不會報錯,這種情況下我們也可以讓其返回一個指定的值,該操作并不會影響字典的鍵值。如下:
dict1.get("name", "123") # name鍵存如果不存在那么返回123
更新字典
通過 dict[key] 修改字典
在字典中,我們可以通過字典的鍵 dict[key] 來修改其對應值,如果鍵不存在,那么就會把該鍵值對添加到字典中。
dict1 = {"name": "wintest", "age": 13}
# 如果不存在那么就是添加,如果存在那么就是修改
dict1["xxx"] = "123"
dict1["age"] = 66
在上面我們提到,字典中的鍵必須是唯一的,如果在創建字典時對同一個鍵賦值多次,那么只有最后一個值會被記住,因為對同一個鍵多次賦值時,其實就相當于 dict[key] 對字典進行修改。
通過 update(dict) 修改字典
字典中的 update() 方法,傳入參數需要是一個新字典,該操作會把新字典中的鍵值對更新到原字典中。
dict1 = {"name": "wintest", "age": 13}
dict2 = {"name": "hihihi", "sex": "?"}
dict1.update(dict2) # 把 dict2 中鍵值對,更新到 dict1 中 ,存在就更新不存在就添加
print(dict1)
刪除字典元素
通過 del 刪除字典中的鍵值對
dict1 = {"name": "wintest", "age": 13}
del dict1["name"]
print(dict1)
如果被刪除的鍵不存在那么就會報錯KeyError: ‘xxx’
通過 pop() 刪除字典中的鍵值對
dict1 = {"name": "wintest", "age": 13}
dict1.pop("name")
print(dict1)
dict1.clear() # 清空字節, 只是內容被清空了, 也就是{}
del dict1 # 刪除整個字典,被刪除的dict1 沒法被使用了
使用 pop() 方法有一個好處,如果要刪除的鍵值對不存在,那么就可以設置指定返回值來避免出現報錯,如下:
dict1 = {"name": "wintest", "age": 13}
del_V=dict1.pop("xxx", "不存在的key") # 鍵不存在,指定返回值
print(del_V)# 不存在的key
刪除最后插入的鍵值對 popitem()
car = {
"brand": "Porsche",
"model": "911",
"year": 1963
}
x = car.popitem()
print(x) # ('year', 1963)
檢查鍵是否存在
要確定字典中是否存在指定的鍵,請使用 in 關鍵字:
dict1 = {"name": "wintest", "age": 13}
print("name" in dict1) # True
字典的遍歷
字典在遍歷時,也可以類似列表、集合等數據類型,通過關鍵字 in 來實現。
dict1 = {"name": "wintest", "age": 13}
for key in dict1:
print(key, dict1[key])
我們也可以使用 dict1.items() ,先以列表返回一個視圖對象,然后對其遍歷時,可以直接獲取到字典中的鍵和值,如下:
dict1 = {"name": "wintest", "age": 13}
for key, value in dict1.items():
print(key, value)
您還可以使用 values() 函數返回字典的值:
dict1 = {"name": "wintest", "age": 13}
for x in dict1.values():
print(x)
字典函數
獲取字段的長度
dict1 = {"name": "wintest", "age": 13}
print(len(dict1)) # 2
復制字典
您不能通過鍵入 dict2 = dict1 來復制字典,因為:dict2 只是對 dict1 的引用,而 dict1 中的更改也將自動在 dict2 中進行。 有一些方法可以進行復制,一種方法是使用內建的字典方法 copy()。
thisdict = {
"brand": "Porsche",
"model": "911",
"year": 1963
}
mydict = thisdict.copy()
print(mydict)
制作副本的另一種方法是使用內建方法 dict()。
thisdict = {
"brand": "Porsche",
"model": "911",
"year": 1963
}
mydict = dict(thisdict)
print(mydict)
批量創建鍵
x = ('key1', 'key2', 'key3')
thisdict = dict.fromkeys(x,None)
print(thisdict) # {'key1': None, 'key2': None, 'key3': None}
原文鏈接:https://blog.csdn.net/weixin_45203607/article/details/126707125
相關推薦
- 2022-10-16 python?math模塊使用方法介紹_python
- 2023-10-26 解決問題:NODE_ENV 不是內部或外部命令,也不是可運行的程序,或者批處理文件
- 2024-01-06 TCP的三次握手和四次揮手
- 2022-08-05 C語言文件操作之fread函數詳解_C 語言
- 2023-03-26 React性能優化的實現方法詳解_React
- 2022-07-01 python性能檢測工具函數運行內存及運行時間_python
- 2022-12-25 React?useState超詳細講解用法_React
- 2021-12-06 C語言PlaySound函數使用方法_C 語言
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支