Python学习笔记(七)—字典的学习
总结内容:
1、字典的定义
2、字典的好处
3、字典的增删改查
4、字典常用方法及内置函数
5、字典的多层嵌套
6、字典的循环
7、字典小练习
1、字典的定义
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:
d = {key1 : value1, key2 : value2 }
2、字典的好处:
1、取数据方便,知道key的值就能将value的值取到
2、速度快
键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
例如:
dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
3、字典的增删改查
3.1、字典查询:
1、get方法

如果key 不存在,在取不到key的值的情况下,则显示为null

如果key的值不存在,但是设置了默认值,那么在取不到值时显示默认值:

2、[ ]方式取值


注意:如果用[]方式取值的话,如果key不存在则会报错
3.2、字典增加:
方式一:[ ]方式,在key 存在的情况下可以覆盖原字典中的值,在key不存在的情况下直接添加该值

注意:字典是无序的,所以输出的数据不一定是按有序的顺序输出
方式二:setdefault方法,在key存在的情况下不能修改原字典中的值
info.setdefault('addr','55555')

3.3、字典的修改:
使用[]方式修改字典的value值

update方式可以将两个字典进行合并操作
dict1 = {'name':'test'}
print(dict1)
dict2 = {'age':19}
dict1.update(dict2)
print(dict1)
运行结果:
{'name': 'test'}
{'name': 'test', 'age': 19}
3.4、字典的删除:
方式一:
pop方式:指定key删除

方式二:
popitem:随机删除一个key

方式三:
del :指定key来删除

方式四:
clear方式:清空字典

4、字典常用方法及内置函数:
values:输出字典中values的值
keys:输出字典所有的key的值
items:输出子典中所有的key:values值

Python内置方法:
|
号 |
函数及描述 |
|
1 |
radiansdict.clear() |
|
2 |
radiansdict.copy() |
|
3 |
radiansdict.fromkeys() |
|
4 |
radiansdict.get(key, default=None) |
|
5 |
key in dict |
|
6 |
radiansdict.items() |
|
7 |
radiansdict.keys() |
|
8 |
radiansdict.setdefault(key, default=None) |
|
9 |
radiansdict.update(dict2) |
|
10 |
radiansdict.values() |
|
11 |
pop(key[,default]) |
|
12 |
popitem() |
Python字典包含了以下内置函数:
|
序号 |
函数及描述 |
实例 |
|
1 |
len(dict) |
>>> dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} >>> len(dict) 3 |
|
2 |
str(dict) |
>>> dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} >>> str(dict) "{'Name': 'Runoob', 'Class': 'First', 'Age': 7}" |
|
3 |
type(variable) |
>>> dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} >>> type(dict) <class 'dict'> |
5、多层嵌套:

实例:
多次嵌套数据的查询:

多次嵌套修改数据

多次嵌套添加数据:

6、字典的循环操作
直接循环字典打印的是字段的key值:

同时取到key:values的循环方式,需要使用items方法:

注意:字典里面用in来判断的话直说判断key的值,value的值是不进行判断的
7、字典小练习
users = { 'test0':'123456', 'test1':'456789', } #所有的账号和密码 # username # pwd # cpwd # print( '123456' in users ) #字典里面用in来判断的话,只是判断key是否存在 for i in range(3): username = input('账号:').strip() passwd = input('密码:').strip() cpasswd = input('密码确定:').strip() if username=='' or passwd=='' or cpasswd=='': print('用户名/密码不能为空') elif username in users: print('用户名已经被注册!') elif passwd!=cpasswd: print('两次输入的密码不一致') else: print('恭喜,注册成功!') # users.setdefault(username,passwd) users[username]=passwd break else: print('错误次数过多') print(users)
浙公网安备 33010602011771号