第二天 字典方法

增:

(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,因为不会报错 

posted @ 2019-06-14 22:49  DEVILNEVERCRY  阅读(67)  评论(0)    收藏  举报