1、创建字典、访问字典中的值、字典中添加键值对、修改字典中的值、del 永久删除字典中的键值对、get()访问字典
cars = {'宝马':'95','长安':'92','奔驰':'95','吉利':'92','奥迪':'95',}
print(cars)# 创建一个字典
user = {} # 创建一个空字典
print(user)
user['name'] = '张三' # 在字典中添加键值对
user['age'] = 18
user['height'] = 180
user['weight'] = 120
user['email'] = '123456@qq.com'
print(user)
print(type(user))
print(f"{user['name']}今年 {user['age']} 岁,身高{user['height']}cm 体重{user['weight']}斤") # 查找字典中的值print(cars)
cars['吉利'] = '95' # 修改字典中的值
print(cars)
print(cars['吉利'])if user['height'] <=180:new_weight = -5
elif user['date'] > 180:new_weight = 5
else:new_weight = 0
user['weight'] = user['weight'] + new_weight
print(f"{user['name']}今年 {user['age']} 岁,身高{user['height']}cm 体重{user['weight']}斤") # 查找字典中的值del cars['奥迪'] # del 永久删除字典中的键值对
print(cars)user1 = user.get("name", "没有这个值") # get()访问字典,第一个参数是要查询的键返回相应的值,第二个参数是当键不存在时返回一个默认的值
user2 = user.get("date", "没有这个值")
user3 = user.get("date") # 第二个参数不传时,默认返回None
print(user1)
print(user2)
print(user3)
2、遍历字典
# 遍历所有键值对 items()方法
for key, value in user.items():print(f'\nkey:{key} \nvalue:{value}')# 遍历字典中的所有键 keys()方法
for key in user.keys():print(f'\nkey:{key.title()}')# 默认就是keys()方法,也可以省略
for key in user:print(f'\nkey:{key.title()}')
# keys()方法也可以用来做判断,返回的是一个列表
if 'email' not in user:print('缺少邮件信息')
else:print('邮件信息存在')
# 按特定顺序遍历字典中的所有键
# for key in sorted(user.keys()): 等同于下面的
for key in sorted(user):print(f'{key.title()}')# 遍历字典中的所有值 values()方法
for value in sorted(cars.values()):print(f'{value}')# 数据量大时可以用set()集合,处理重复项,集合中每个元素都是独一无二的
for value in set(cars.values()):print(f'{value}')
# 创建一个集合, 利用集合去重
cars_list1 = {'长城', '奔驰', '奥迪', '长安'}
cars_list2 = {'吉利', '奔驰', '奥迪', '红旗'}
# cars_list = cars_list1.union(cars_list2) # 合并集合
cars_list = cars_list1 | cars_list2 # 合并集合
cars_list1.update(cars_list2) # 将cars_list2 添加到集合 cars_list1中
print(cars_list)
3、嵌套;可在列表中嵌套字典、字典中嵌套列表、字典中嵌套字典
# 字典列表(在列表中存储字典)
user1 = {'name':'张三', 'age': 16, 'tag':'成年'}
user2 = {'name':'李四', 'age': 17, 'tag':'成年'}
user3 = {'name':'王五', 'age': 18, 'tag':'成年'}
user4 = {'name':'李红', 'age': 16, 'tag':'成年'}
user5 = {'name':'李明', 'age': 17, 'tag':'成年'}
user6 = {'name':'王一', 'age': 18, 'tag':'成年'}
users = [user1, user2, user3, user4, user5, user6]
print(users)
for user in users[:2]: # 将2个人的信息更新为正确的if user['age'] < 18:user['tag'] = '未成年'
print(users)
# 在字典中存储列表
student = {'name':'陈一','hobby':['play basketball', 'read a book', 'play chess'],
}
students1 = {'王二':['play basketball', 'read a book'],'陈一':[ 'read a book', 'play chess'],
}
print(f"{student['name']}的爱好:")
a = [print(i) for i in student['hobby']] # 不推荐这样使用列表推导式,列表推导式一般都是用来生成新列表的,此程序用来打印会生成存在三个none元素的空列表,浪费内存
print(a)
b = [i.title() for i in student['hobby']] # 这样就合理一点,但还是会浪费内存,直接打印更高效
for item in b:print(item)for name, hobby_list in students1.items():print(f'\n{name}的爱好是:')for bobby in hobby_list:print(f'\t{bobby.title()}')# 在字典中存储字典
students2 = {'陈一':{'age':18,'tag':'成年', 'hobby':['play basketball', 'read a book'],},'王五':{'age':17,'tag':'未成年','hobby':['play basketball', 'play chess'],},'马二':{'age':16,'tag':'未成年','hobby':['read a book', 'play chess'],},
}
for stu_name, stu_info in students2.items():print(f'\n学生 {stu_name} 的信息:')for key, value in stu_info.items():print(f'\t {key}: {value}')# for value in stu_info.values():# print(f'\t{value}')