(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹)
目录
一、字典
1.字典的定义
字典 dict 是一种 KEY : VALUE 的数据结构,可以根据 KEY 设置和获取对应的 VALUE
语法: dict = {key1:value1, key2:value2}
举例 : d = {"id":123, " name":"liming " }
创建空列表: d = {}
2.字典与列表的关系
列表用顺序数字做索引,字典用 Key 做索引,相当于给每个元素进行了命名( "3 号学生 " 和 " xm 同学 " 的区别)
如果有一个数据列表: [(11, A), (12, B), (13, C)] ,要在其中查找 B 这个条目,需要遍历列表查找;
如果使用字典 {A:11, B:12, C:13} ,直接使用 get(B) 取出, 字典具有超级快的按 KEY 查找速度 ;
3.获取数据
user = {"id":123, "name":"liming", "age":20} print(user["id"]) print(user["name"]) print(user["age"])
123
liming
20
#如果key不存在就报错,比如: print(user["grade"])
KeyError: 'grade'
4.给字典添加键值对
user["grade"]=80
如果"grade"这个key不存在,就新增一个键值对
如果"grade"这个key已经存在,就修改"grade"对应的值
user = {"id":123, "name":"liming", "age":20} print(user["id"]) print(user["name"]) print(user["age"]) user["grade"] = 80 print(user["grade"])
123
liming
20
80
5.遍历字典
以下三个方法常常用于字典的遍历:
1. dict.items() 以列表返回可遍历的(键, 值) 元组数组,常常用于for遍历
user = {"id":123, "name":"liming", "age":20} user["grade"] = 80 print(user["grade"]) #同时遍历键值对 for a,b in user.items(): print(a,b)
id 123
name liming
age 20
grade 80
2. dict.keys() 以列表返回字典所有的键
user = {"id":123, "name":"liming", "age":20} user["grade"] = 80 print(user["grade"]) #只遍历键列表 for a in user.keys(): print(a)
id
name
age
grade
3. dict.values() 以列表返回字典的所有的值
user = {"id":123, "name":"liming", "age":20} user["grade"] = 80 print(user["grade"]) #只遍历值列表 for a in user.values(): print(a)
123
liming
20
80
6.字典的嵌套
1.列表的元素是字典
#列表的元素是字典 students=[ {"id":101,"name":"xiaozhang","grade":88}, {"id":102,"name":"xiaowang","grade":77}, {"id":103,"name":"xiaoli","grade":66}, {"id":104,"name":"xiaozhao","grade":55} ] for student in students: id,name,grade = student["id"],student["name"],student["grade"] print(f"学号为{id}的姓名是{name},成绩是{grade}")
学号为101的姓名是xiaozhang,成绩是88
学号为102的姓名是xiaowang,成绩是77
学号为103的姓名是xiaoli,成绩是66
学号为104的姓名是xiaozhao,成绩是55
2. 字典的value是列表
students = { "xiaozhang":["足球"], "xiaowang":["篮球"] } for student,likes in students.items(): print(f"学生{student},爱好{likes}")
学生xiaozhang,爱好['足球']
学生xiaowang,爱好['篮球']
3. 字典的value是字典
students = { "xiaozhang":{"id":101,"grade":88}, "xiaowang":{"id":102,"grade":77} } for name,info in students.items(): id,grade = info["id"],info["grade"] print(f"姓名为{name},学号为{id},成绩是{grade}")
姓名为xiaozhang,学号为101,成绩是88
姓名为xiaowang,学号为102,成绩是77
二、集合
1.定义:
集合 set 是一组 无序 并且 没有重复元素 的 KEY 集合
set 跟 dict 的 key 类似,区别在于 set 没有 value
KEY 无序,所以 set 不支持数字索引和切片 ( dict 也不支持 )
2.使用场景:
使用场景 1 :判断某个元素是否在集合 set 中( set 比 list 速度快);
使用场景2:消除输入数据的重复元素;
3.创建方式:
创建一个空集合:s = set()
创建一个初始化集合方法1:s = {1,2,2,3}
创建一个初始化集合方法2:s = set([1,2,2,3])
这里的参数可以是列表、元组、字符串
创建空集合不能用s = {},因为这创建了dict字典
4.注意:
和dict一样,set的key只能是数字、字符串、元组等不可变对象,不能是列表等可变对象
5.set支持的方法:
•len(set) 集合的元素个数
•for x in set 集合的遍历
•set.add(key) 新增一个KEY,如果有重复会自动去重
•set.remove(key) 删除一个KEY
•set.clear() 清空set
•x in set 判断元素是否在set集合中