第二天 字典方法
增:
(1)直接添加,有则改无则增
dic1 = {"name":"zhang","age":20,"sex":"male"}
dic1["height"] = 120
print(dic1)
dic1["age"] = "asdsadsadsaadsa"
print(dic1)
{'name': 'zhang', 'age': 20, 'sex': 'male', 'height': 120}
{'name': 'zhang', 'age': 'asdsadsadsaadsa', 'sex': 'male', 'height': 120}
(2)setdefault(元素名称,【元素值】)
若不给元素值:
dic1 = {"name":"zhang","age":20,"sex":"male"}
dic1.setdefault("asd")
print(dic1) #得到空值
{'name': 'zhang', 'age': 20, 'sex': 'male', 'asd': None}
若给出元素值
dic1 = {"name":"zhang","age":20,"sex":"male"}
dic1.setdefault("asd",123)
print(dic1)
{'name': 'zhang', 'age': 20, 'sex': 'male'}
{'name': 'zhang', 'age': 20, 'sex': 'male', 'asd': 123}
\\但是在这里我有一个疑问,具体《疑问》里有写
二、删
1. dict.pop(键,返回值)
2. dict.popitem()
3. del
4. dict.clear()
-----------------------------------------------------------------------------------------
1. dict.pop()
pop()是字典方法,这个方法在list方法里也有相同名字的方法
这个方法常用,因为可以控制程序的显示的返回值,而不让其报错
具体方法如下:
(1)不设置返回值,则会报错
dic1 = {"name":"zhang","age":20,"sex":"male"}
dic1.pop("二哥")
Traceback (most recent call last):
File "C:/Users/admin/Desktop/老男孩.py", line 90, in <module>
dic1.pop("二哥")
KeyError: '二哥'
(2)设置返回值,不报错
dic1 = {"name":"zhang","age":20,"sex":"male"}
dic1.pop("二哥","没有该值")
(3)可以显示,说明是有返回值的
dic1 = {"name":"zhang","age":20,"sex":"male"}
print(dic1.pop("二哥","没有该值"))
没有该值
2. dict.popitem()
(1)默认删除最后一个元素,但是在3.5以前的版本会随机删除
dic1.popitem() print(dic1)
原结果:
{'name': 'zhang', 'age': 20, 'sex': 'male', 'asd': None}
删除之后的结果:
{'name': 'zhang', 'age': 20, 'sex': 'male'}
(2)删除的值,其实也是有返回值的,返回了这个被删除的值
dic1 = {"name":"zhang","age":20,"sex":"male"}
print(dic1.popitem())
('sex', 'male')
返回了一个元组
3. del
del dict 【这里不再演示】
4. dict.clear()
清空字典
三. 改
dict.update()
注意,这里只能传进一个键值对,或者一个字典,其他形式则不被允许
dic1 = {"name":"zhang","age":20,"sex":"male"}
print(dic1)
dic2 = {"二哥":123}
dic1.update(dic2)
print(dic1)
{'name': 'zhang', 'age': 20}
{'name': 'zhang', 'age': 20, '二哥': 123}
也还可以输入键值对
dic1.update({"zhang":456})
print(dic1)
{'name': 'zhang', 'age': 20, '二哥': 123, 'zhang': 456}
四. 查
这里需要说明的一点是:
print(dic1.keys()) print(dic1.values()) print(dic1.items())
dict_keys(['name', 'age', '二哥', 'zhang']) dict_values(['zhang', 20, 123, 456]) dict_items([('name', 'zhang'), ('age', 20), ('二哥', 123), ('zhang', 456)])
以上三个是字典方法,注意这三个方法分别生成了:键的列表、值的列表、键值对的列表
但是在键值对的列表中,键值对是以元组的形式展示的
还需要说明的一点是:
a ,b = 1,2
print(a,b)
1 2
这说明python有较高的容错率,这种方法就可以一一取出dict,items()中的值,
分别给到两个变量中
查的方法:
print(a,b) for i,j in dic1.items(): print(i,j)
name zhang age 20 二哥 123 zhang 456
至于 dict.keys();dict.values()方法与其类似
(2)dict.get()
也是查找某个值,但是找不到不会报错
dic1 = {"name":"zhang","age":20,"sex":"male"}
dic1.get("大哥")
#不报错
也可以添加返回值,方法与dict.pop()类似
dic1 = {"name":"zhang","age":20,"sex":"male"}
print(dic1.get("大哥","没有这个值"))
没有这个值
在得到键时,首选get,因为不会报错

浙公网安备 33010602011771号