dict
特点
- 符号{}
- 保存的元素是key:value对
- key在字典中是唯一的
定义空字典
dict1 = {} dict2 = dict()
非空
dict3 = {'name1':'tom','name2':'jack'}
增加/更改
如果增加时,在字典中存在同名的key,则会覆盖原有的值
dict1 = {} dict1['brand'] = 'huawei' print(dict1) dict1['brand'] = 'xiaomi' print(dict1)
{'brand': 'huawei'} {'brand': 'xiaomi'}
注册练习
print('-----欢迎来到注册界面-----') # 模拟数据库 database = [] while True: username = input('输入用户名: ') password = input('输入密码: ') repassword = input('输入确认密码: ') email = input('输入邮箱: ') phone = input('输入手机号: ') # 定义一个字典 user = {} # 将信息保存到字典中 user['username'] = username if password == repassword: user['password'] = password else: print('两次密码不一致! 重新输入') continue user['email'] = email user['phone'] = phone # 保存到数据库 database.append(user) print('注册完成') answer = input('是否继续注册?(y/n)') if answer!='y': break print(database)
-----欢迎来到注册界面----- 输入用户名: admin 输入密码: 123456 输入确认密码: 123123 输入邮箱: 171 输入手机号: 150 两次密码不一致! 重新输入 输入用户名: admin 输入密码: 123456 输入确认密码: 123456 输入邮箱: 171 输入手机号: 150 注册完成 是否继续注册?(y/n)n [{'username': 'admin', 'password': '123456', 'email': '171', 'phone': '150'}]
取值
通过key获取value值
dict1 = {'张三':100,'李四':85,'王五':92,'赵六':96} print(dict1['张三'])
100
items()
将字典的键值对转成列表保存的形式
for i in dict1.items(): print(i)
('张三', 100) ('李四', 85) ('王五', 92) ('赵六', 96)
取出分数小于于90分的姓名
for key,value in dict1.items(): if value < 90: print(key)
李四
values()
取出字典中所有值
result = dict1.values() print(result)
dict_values([100, 85, 92, 96])
计算平均值
result = dict1.values() totle = sum(result) avg = totle/len(result) print(avg)
93.25
keys()
取出字典中所有键
result = dict1.keys() print(result)
dict_keys(['张三', '李四', '王五', '赵六'])
get()
当字典中没有我们要取的值时,会报错
print(dict1['赵飞'])
KeyError: '赵飞'
get取不到值,不会报错,返回None
print(dict1.get('赵飞'))
None
get如果取不到值,还可以设置默认值
print(dict1.get('赵飞',99))
99
删除
del
dict1 = {'张三':100,'李四':85,'王五':92,'赵六':96} del dict1['张三'] print(dict1)
{'李四': 85, '王五': 92, '赵六': 96}
当删除一个不存在key时,会报错
pop()
根据key删除字典中的key-value对
返回值时删除成功的key-value中的value
dict1 = {'张三':100,'李四':85,'王五':92,'赵六':96} result = dict1.pop('李四') print(result) print(dict1)
85 {'张三': 100, '王五': 92, '赵六': 96}
当删除一个可能不存在的键值时,可以使用默认值
当不存在时,不会报错,返回值即为默认值
result = dict1.pop('hh','该字典中没有此键') print(result) print(dict1)
该字典中没有此键 {'张三': 100, '王五': 92, '赵六': 96}
popitem()
随机删除字典中键值对(一般是从末尾删除元素)
dict1 = {'张三':100,'李四':85,'王五':92,'赵六':96} result = dict1.popitem() print(result) print(dict1) result = dict1.popitem() print(result) print(dict1)
('赵六', 96) {'张三': 100, '李四': 85, '王五': 92} ('王五', 92) {'张三': 100, '李四': 85}
clear()
清空字典
dict1 = {'张三':100,'李四':85,'王五':92,'赵六':96} dict1.clear() print(dict1)
{}
字典合并
字典不支持+符号
update()
dict1 = {'张三':100,'李四':85,'王五':92,} dict2 = {'张三':60,'阿飞':76} dict1.update(dict2) print(dict1) print(dict2)
{'张三': 60, '李四': 85, '王五': 92, '阿飞': 76} {'张三': 60, '阿飞': 76}
没有返回值
fromkeys()
转换为字典的形式
如果没有指定默认值则用None
list1 = ['aa','cc','dd'] new_dict = dict.fromkeys(list1,10) print(new_dict)
{'aa': 10, 'cc': 10, 'dd': 10}
来源:https://www.cnblogs.com/inmeditation/p/12302666.html