stu_id={'name':'张三','age':18,'sex':'男','math':60,'eng':60,'chinese':80,'address':['地球','亚洲']}
print(stu_id)
一、性质
-
1.字典是dict,容器符号是{}
-
2.字典中每个元素用逗号隔开,每个元素被称为一个键值对(key:value)
key:仅仅是对value的解释说明,一般建议用字符串,key可以使任意一个不可变数据类型
value:是字典要存储的数据,value可以使任意的数据类型
-
3.字典是可变的数据类型,在python3.7以前字典无序,python3.7以后有序,但是使用一定按照无序使用
没有特殊说明,针对于字典的所有操作都是对键的操作
二、字典的循环遍历
获取到的是键值对的键
stu_info={'name':'张三','age':18,'sex':'男',
'math':60,'eng':60,'chinese':80,'address':['地球','亚洲']}
三、字典是通过键来获取值
语法:字典[key]
for i in stu_info:
print(i,stu_info[i])
四、利用字典进行登录
字典的成员运算--->判断自带中是否存在某个键
username_pwd={'admin':'123456','fyk':'123456789'}
input_username='admin'
input_pwd='123456'
if input_username in username_pwd and username_pwd[input_username]==input_pwd:
print('登陆成功')
else:
print('用户名或密码错误')11
一、通过键取值
stu_info = {'name': 'aaa', 'age': 18}
如果要使用:字典{key}的形式获取值,有报错的概率,可以使用get()
print(stu_info['tel'])
result = stu_info.get('age')
print(result)
get():如果某个key不存在,默认返回None
其实还可以添加第二个参数,第二个参数就是自定义返回结果
result_1 = stu_info.get('tel', '不存在')
print(result_1)
二、键值对获取相关方法
keys:获取一个字典所有的键
print(stu_info.keys())
values:获取一个字典所有的值
print(stu_info.values())
items:获取一个字典所有的键值对
print(stu_info.items())
解包操作与items与循环遍历的结合
for key, value in stu_info.items():
print(key, value)
三、字典的增删改
new_dict = {}
1.增加
setdefault-->如果key不存在则添加,存在则无变化
new_dict.setdefault('eng', 19)
print(new_dict)
new_dict.setdefault('eng', 60)
print(new_dict)
update-->可以将另一个字典中所有的元素添加到字典中,如果键存在则进行修改
new_dict.update({'chinese': 100, 'sport': 60})
print(new_dict)
new_dict.update({'chinese': 90})
print(new_dict)
字典[key]=value-->如果key存在是修改操作,不存在则为添加操作
new_dict['math'] = 100
print(new_dict)
new_dict['math'] = 60
print(new_dict)
2.删除操作
del:指定删除某个列表的某个键对应的元素(键值对)
del new_dict['eng']
print(new_dict)
pop():根据键删除键值对,返回value
print(new_dict.pop('sport'))
各种方法返回值的问题
有些方法在底层源码设定时允许有返回值,return
有些方法没有返回值:return
四、dict方法的使用
-
1.数据必须是个容器
-
2.容器中的元素依旧是容器
-
3.最内层容器必须有两个元素
-
4.必须保证第一个元素不可变
print(dict([('name', '张三'), ('age', 20)]))
print(dict(['ab', 'cd']))
print(dict(([1, 2], [3, 4])))
五、字典生成式(推导式)
除了容器符号不一样,除了元素样式不一样之外,与列表生成式一模一样
练习:请筛选出股价大于70的数据,使用字典生成式
com_dict = {
'apple': 100,
'mi': 70,
'oppo': 60,
'vivo': 60
}
result_1 = {i: com_dict.get(i) for i in com_dict if com_dict.get(i) >= 70}
result_2 = {i: com_dict[i] for i in com_dict if com_dict[i] >= 70}
result_3={key:value for key,value in com_dict.items() if value>=70}
print(result_1,result_2,result_3,sep='\n')