总结内容:
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)