python 字典(dict)增刪改查及方法
阿新 • • 發佈:2018-11-30
強大自己是唯一獲得幸福的途徑,這是長遠的,而非當下的玩樂!
增
直接賦值
>>> dic1 = {"name": "zuowei", "age": 18, "hobby": "lp"} >>> dic1["sex"] = "男" >>> print(dic1) {'name': 'zuowei', 'age': 18, 'hobby': 'lp', 'sex': '男'} >>> dic1["age"] = 8 # 有則改,無則加 >>> print(dic1) {'name': 'zuowei', 'age': 8, 'hobby': 'lp', 'sex': '男'}
setdefult(self, k, d=None)
>>> dic1 = {"name": "zuowei", "age": 18, "hobby": "lp"} >>> dic1.setdefault("sex", "男") >>> print(dic1) {'name': 'zuowei', 'age': 18, 'hobby': 'lp', 'sex': '男'} >>> dic1.setdefault("age", 8) # 有則不變,無則新增 18 # 如果有這個key,會返回已存在的值,不會改變 >>> print(dic1) {'name': 'zuowei', 'age': 18, 'hobby': 'lp', 'sex': '男'}
刪
pop(self, k, d=None) 根據key刪除
>>> dic1 = {"name": "zuowei", "age": 18, "hobby": "lp"}
>>> dic1.pop("hobby")
'lp' # 會有返回值
>>> print(dic1)
{'name': 'zuowei', 'age': 18}
clear(清空)
>>> dic1 = {"name": "zuowei", "age": 18, "hobby": "lp"} >>> dic1.clear() >>> print(dic1) {}
del (根據key刪除)
>>> dic1 = {"name": "zuowei", "age": 18, "hobby": "lp"}
>>> del dic1["hobby"]
>>> print(dic1)
{'name': 'zuowei', 'age': 18}
改
直接賦值(拷貝的增加。。)
>>> dic1 = {"name": "zuowei", "age": 18, "hobby": "lp"}
>>> dic1["sex"] = "男"
>>> print(dic1)
{'name': 'zuowei', 'age': 18, 'hobby': 'lp', 'sex': '男'}
>>> dic1["age"] = 8 # 有則改,無則加
>>> print(dic1)
{'name': 'zuowei', 'age': 8, 'hobby': 'lp', 'sex': '男'}
update(self, E=None, **F)
>>> dic1 = {"name": "zuowei", "age": 18, "hobby": "lp"}
>>> dic2 = {"name": "lp", "age": 18, "height": 150}
>>> dic2.update(dic1)
>>> print(dic2) # 覆蓋更新,有則覆蓋,無則新增
{'name': 'zuowei', 'age': 18, 'height': 150, 'hobby': 'lp'}
查
根據key查詢
>>> dic1 = {"name": "zuowei", "age": 18, "hobby": "lp"}
>>> print(dic1["name"])
zuowei
>>> print(dic1["hobby"])
lp
get(self, k, d=None)
>>> dic1 = {"name": "zuowei", "age": 18, "hobby": "lp"}
>>> print(dic1["name"])
zuowei
>>> print(dic1["hobby"])
lp
>>> dic1.get("name")
'zuowei'
>>> dic1.get("age")
18
for迴圈
>>> dic1 = {"name": "zuowei", "age": 18, "hobby": "lp"}
>>> for k, v in dic1.items():
... print(k, v)
...
name zuowei
age 18
hobby lp
其他方法
clear(清空)
上面已說明
copy
請參見深淺copy --> https://blog.csdn.net/z_bright/article/details/84648996
fromkeys(*args **kwargs)
>>> l1 = ["name", "age", "hobby"]
>>> dic1 = dict.fromkeys(l1, None)
>>> print(dic1)
{'name': None, 'age': None, 'hobby': None}
get
上面已說明
items(返回一個列表,內為key+value組成的元祖,所以上面for迴圈遍歷 字典.items,可以對應兩個值並列印)
>>> dic1 = {"name": "zuowei", "age": 18, "hobby": "lp"}
>>> print(dic1.items())
dict_items([('name', 'zuowei'), ('age', 18), ('hobby', 'lp')])
keys(返回字典的key)
>>> dic1 = {"name": "zuowei", "age": 18, "hobby": "lp"}
>>> print(dic1.keys())
dict_keys(['name', 'age', 'hobby'])
values(返回字典的value)
>>> dic1 = {"name": "zuowei", "age": 18, "hobby": "lp"}
>>> print(dic1.values())
dict_values(['zuowei', 18, 'lp'])
pop
上面已說明
popitem(隨機返回並刪除字典中的一對鍵和值(一般刪除末尾對)。字典為空則報錯)
>>> dic1 = {"name": "zuowei", "age": 18, "hobby": "lp"}
>>> dic1.popitem()
('hobby', 'lp') # 返回值,可以賦值給其他變數做其他處理
>>> print(dic1)
{'name': 'zuowei', 'age': 18}
setdefault
上面已說明
update
上面已說明