字典的增删改查
1:字典的增加和修改
dict1 = {} ###定义一个空的字典
##字典的增加
# 基本格式:dict1['key'] = 'value' 注意:增加的key是用中括号包裹的
dict1['name'] = 'yz'
dict1['age'] = '18'
print(dict1)
##字典的修改
dict1['name'] = 'abc'
print(dict1)
总结:按照上面的格式,如果字典中存在同名的key则实现的是修改的功能,如果没有同名的key则实现的是添加的功能
{'name': 'yz', 'age': '18'}
{'name': 'abc', 'age': '18'}
2:简单的用户注册
print('---------欢迎注册账户------------')
user= {}
database= []
while True:
a= input("是否注册用户:y/n")
if a != 'y':
break
username = input("请输入用户名:")
password = input("请输入密码:")
repassword = input("请输入确认密码")
email = input("请输入邮箱")
user['username'] = username
if password == repassword:
user['password'] = password
user['repassword'] = repassword
user['email'] = email
database.append(user) ###将最后生成的字典的数据信息保存到列表中
else:
print("两次密码输入的不一致,请重新输入密码;")
continue
ans = input("是否继续注册用户y/n")
if ans != 'y':
break
power = input('是否查看用户:y/n')
if power == 'y':
print(database)
else:
print("欢迎下次使用")
3:字典的查询操作
进行字典的查询操作都是检索key值,得到相应value值
dict1 = {'a':100, 'b':98, 'c':100, 'd':99, 'e':98}
print(dict1['d']) ##列表中是通过索引值来查找对应的元素,字典则是通过key值来检索相应的value
99
4:字典的循环遍历(默认遍历拿出的是key值)
dict1 = {'a1':100, 'b2':98, 'c3':100, 'd4':99, 'e5':98}
for i in dict1:
print(i)
a1
b2
c3
d4
e5
5:字典内的函数
items() ##将字典中的键值对转换成列表的形式进行保存,其中的每组键值对都变成了元组
dict1 = {'a1':100, 'b2':98, 'c3':100, 'd4':99, 'e5':98}
print(dict1.items())
for i in dict1.items():
print(i)
print(type(i))
dict_items([('a1', 100), ('b2', 98), ('c3', 100), ('d4', 99), ('e5', 98)])
('a1', 100)
<class 'tuple'>
('b2', 98)
<class 'tuple'>
('c3', 100)
<class 'tuple'>
('d4', 99)
<class 'tuple'>
('e5', 98)
练习:找出字典中,考试成绩大于98的人
dict1 = {'a1':100, 'b2':98, 'c3':100, 'd4':99, 'e5':98}
for key,values in dict1.items(): ##因为此时的每一个键值对变成了一个元组,根据元组的赋值特性,a,b = ("aa","bb"),此时就会将aa赋值给a,bb赋值给b。
if values > 98:
print(key)
a1
c3
d4
keys() ##取出字典中的key,并保存到列表中
dict1 = {'a1':100, 'b2':98, 'c3':100, 'd4':99, 'e5':98}
sources = dict1.keys()
print(sources)
dict_keys(['a1', 'b2', 'c3', 'd4', 'e5'])
##将每个key值循环遍历出来
dict1 = {'a1':100, 'b2':98, 'c3':100, 'd4':99, 'e5':98}
sources = dict1.keys()
for i in sources:
print(i)
a1
b2
c3
d4
e5
vlaues()##取出字典中所有的值并保存到字典中
dict1 = {'a1':100, 'b2':98, 'c3':100, 'd4':99, 'e5':98}
print(dict1.values())
for value in dict1.values():
print(value)
dict_values([100, 98, 100, 99, 98])
100
98
100
99
98
例题:求所有人成绩的平均分
dict1 = {'a1':100, 'b2':98, 'c3':100, 'd4':99, 'e5':98}
sources = dict1.values()
num = sum(sources)
avg = num/len(sources)
print(avg)
99.0
字典的删除操作
del dict[key]
dict1 = {'a1':100, 'b2':98, 'c3':100, 'd4':99, 'e5':98}
del dict1['a1']
print(dict1)
{'b2': 98, 'c3': 100, 'd4': 99, 'e5': 98}
pop()函数:根据key去删除键值对,返回值是删除成功的键值对的值
dict1 = {'a1':100, 'b2':98, 'c3':100, 'd4':99, 'e5':98}
result= dict1.pop('a1')
print(result)
print(dict1)
100
{'b2': 98, 'c3': 100, 'd4': 99, 'e5': 98}
popitem():随机删除字典中的键值对,默认返回的是被删除的那个键值对(一般是从末尾开始删除元素)
dict1 = {'a1':100, 'b2':98, 'c3':100, 'd4':99, 'e5':98}
result= dict1.popitem()
print(result)
print(dict1)
('e5', 98)
{'a1': 100, 'b2': 98, 'c3': 100, 'd4': 99}
clear()清空列表
dict1 = {'a1':100, 'b2':98, 'c3':100, 'd4':99, 'e5':98}
dict1.clear()
print(dict1)
{}
列表的其他函数的用法(了解就好)
update 函数:类似于列表中的extend
dict1 = {'a1':100, 'b2':98, 'c3':100, 'd4':99, 'e5':98}
dict2 = {'a1': 00 ,'f6':100}
dict1.update(dict2)
print(dict1)
##相同key值的文件进行替换,没有key值的进行添加
{'a1': 0, 'b2': 98, 'c3': 100, 'd4': 99, 'e5': 98, 'f6': 100}