![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/b491b962aa0b505593bca5249410f4bd.png)
01-review
stu = {
'name': '余婷',
'age': 18,
'weight': 67
}
"""
容器;{键1:值1, 键2:值2,...}
可变的;无序的;
键 - 不可变的数据;唯一的
值 - 没有要求
"""
dict1 = {}
"""
查单个:字典[键]、字典.get(键)、字典.get(键, 默认值)
for 变量 in 字典:
循环体(变量是键)
for 变量1,变量2 in 字典.items():
循环体
"""
dict1 = {'a': 10, 'b': 20}
print(dict1['a'])
list1 = [10, dict1, {'abc': 100}]
print(list1[1]['a'])
"""
字典[键] = 值
字典.setdefault(键, 值)
"""
"""
del 字典[键]
字典.pop(键)
"""
result = dict(['ab', [10, 20], range(2)])
print(result)
stu = {'name': '余婷', 'age': 18, 'gender': '女'}
print(list(stu))
dict
02-homework
list1 = [10, 20, 34, 10, 9, 78]
data = 20
indexs = []
for index, item in enumerate(list1):
if item == data:
indexs.append(index)
print(data, '的下标有:', indexs)
list1 = [23, 45, 68, 90]
for index in range(1, len(list1)):
if list1[index] < list1[index-1]:
print(False)
break
else:
print(True)
A = [10, 20, 30, 40, 50]
B = [100, 200, 300]
result = []
while True:
result.append(A.pop(0))
result.append(B.pop(0))
if A == [] or B == []:
break
result += A + B
print(result)
stu = {'name': '小明', 'age': 18, 'score': 89, 'tel': '1929233', 'gender': '男'}
students = [
{'name': '小花', 'age': 20, 'score': 60, 'tel': '1829321', 'gender': '女'},
{'name': '小红', 'age': 17, 'score': 100, 'tel': '1292930'},
{'name': '李华', 'age': 15, 'score': 57, 'tel': '11222389', 'gender': '男'},
{'name': '小明', 'age': 18, 'score': 89, 'tel': '1929233', 'gender': '男'},
{'name': '张三', 'age': 30, 'score': 100, 'tel': '1929238'},
{'name': '李敏', 'age': 20, 'score': 99, 'tel': '919234', 'gender': '女'}
]
count = 0
for x in students:
if x['score'] < 60:
count += 1
print('不及格学生的个数:', count)
for x in students:
if x['age'] < 18 and x['score'] < 60:
print(x['name'], x['score'])
total_age = count = 0
for x in students:
if x.get('gender') == '男':
total_age += x['age']
count += 1
print('男生的平均年龄:', total_age / count)
print('------------------------------------------华丽的分割线------------------------------------------------')
max_score = students[0]['score']
for x in students[1:]:
if x['score'] > max_score:
max_score = x['score']
for x in students:
if x['score'] == max_score:
print(x['name'])
print('------------------------------------------华丽的分割线------------------------------------------------')
max_score = students[0]['score']
names = [students[0]['name']]
for x in students[1:]:
if x['score'] > max_score:
max_score = x['score']
names.clear()
names.append(x['name'])
elif x['score'] == max_score:
names.append(x['name'])
print(max_score, names)
result = [x for x in students if x.get('gender')]
print(result)
result = sorted(students, key=lambda item: item['score'], reverse=True)
print(result)
"""
0 -> 1、2、3、4
1 -> 2、3、4
2 -> 3、4
3 -> 4
[20, 50, 30, 70, 45]
第一轮结束:[70, 20, 30, 50, 45]
第二轮结束:[70, 50, 20, 30, 45]
第三轮结束:[70, 50, 45, 20, 30]
第四轮结束:[70, 50, 45, 30, 20]
"""
for i in range(len(students)-1):
for j in range(i+1, len(students)):
if students[j]['score'] > students[i]['score']:
students[i], students[j] = students[j], students[i]
print(students)
"""
第1轮:50,30,70,45,20: 0-1、1-2、2-3、3-4 0-3(5-1)
第2轮:50,70,45,30,20:0-1,1-2,2-3 0-2(5-2)
第3轮:70,50,45,30,20: 0-1,1-2 0-1(5-3)
第4轮:70,50,45,30,20: 0-1 0(5-4)
"""
nums = [20, 50, 30, 70, 45]
for i in range(1, len(nums)):
for j in range(len(nums) - i):
if nums[j+1] > nums[j]:
nums[j + 1], nums[j] = nums[j], nums[j + 1]
print(nums)
dogs = [
{'name': '贝贝', 'color': '白色', 'breed': '银狐', 'age': 3, 'gender': '母'},
{'name': '花花', 'color': '灰色', 'breed': '法斗', 'age': 2},
{'name': '财财', 'color': '黑色', 'breed': '土狗', 'age': 5, 'gender': '公'},
{'name': '包子', 'color': '黄色', 'breed': '哈士奇', 'age': 1},
{'name': '可乐', 'color': '白色', 'breed': '银狐', 'age': 2},
{'name': '旺财', 'color': '黄色', 'breed': '土狗', 'age': 2, 'gender': '母'}
]
print('------------------------------------------华丽的分割线------------------------------------------------')
result = [x['breed'] for x in dogs]
print(result)
result = [x['name'] for x in dogs if x['color'] == '白色']
print(result)
for x in dogs:
x.setdefault('gender', '公')
print(dogs)
count = 0
for x in dogs:
if x['breed'] == '银狐':
count += 1
print(count)
03-元组
"""
容器型数据类型; 将()作为容器的标志,里面多个数据用逗号隔开:(数据1, 数据2, 数据3,...)
不可变(不支持增删改);有序的(支持下标操作)
任何类型的数据都可以是元组的元素。
"""
t1 = ()
t2 = (19)
print(t2, type(t2))
t2 = (19,)
print(t2, type(t2))
t3 = (10, 29, 39)
print(t3, type(t3))
t3 = 10, 29, 39
print(t3, type(t3))
print('------------------------------------------华丽的分割线------------------------------------------------')
t4 = ('星期1', '星期2', '星期3', '星期4', '星期5', '星期6', '星期天')
print(t4[-1], t4[0])
print(t4[1:-1:2])
print(t4[-2:2])
print(t4[3::-1])
print('------------------------------------------华丽的分割线------------------------------------------------')
for x in t4:
print(x)
print('------------------------------------------华丽的分割线------------------------------------------------')
for x in range(len(t4)):
print(x, t4[x])
print('------------------------------------------华丽的分割线------------------------------------------------')
for x1, x2 in enumerate(t4):
print(x1, x2)
t5 = (10, 20, 30)
x, y, z = t5
print(x, y, z)
x, y, z = 10, 20, 30
d1 = {'a': 10, 'b': 20, 'c': 30}
for x1, x2 in d1.items():
print(x1, x2)
print('------------------------------------------华丽的分割线------------------------------------------------')
nums = [89, 70, 66]
for x1, x2 in enumerate(nums):
print(x1, x2)
print('------------------------------------------华丽的分割线------------------------------------------------')
stu = (89, 18, 78, 67, 90, 167)
x, *y = stu
print(x, y)
*x, y = stu
print(y, x)
*a, b, c = stu
print(c, b, a)
a, b, *c = stu
print(a, b, c)
a, *b, c = stu
print(a, c, b)
stu = ('小明', 18, 78, 67, 90, 167)
name, age, *score, height = stu
print(score)
print(name)
t1 = (10, 20, 30)
t2 = (100, 200)
print(t1 + t3)
print(t1 * 3)
t1 = (101, 20, 30)
print(t1 > t2)
t1 = (101, 20, 30)
print(101 in t1)
t1 = (101, 20, 301)
print(max(t1), sum(t1), sorted(t1))
print(len(t1))
print(tuple('abc'))
04-集合
"""
容器型数据; 将{}作为容器的标志,{数据1, 数据2, 数据3,...}
集合是可变的(支持增删改); 集合是无序的
集合中的元素必须是不可变类型的数据;集合中的元素是唯一(自带去重的功能)
"""
s1 = set()
print(type(s1), len(s1))
s2 = {10, 'abc', True, (10, 20)}
print(s2)
nums = {10, 20, 30, 10, 40, 20, 20}
print(nums)
names = ['张三', '小明', '张三', '李四', '小明', '张三', '王五']
print(set(names))
print({10, 23, 40} == {23, 10, 40})
print('------------------------------------------华丽的分割线------------------------------------------------')
"""
{1, 2, 3} - 集合
{1, 2, 3}的子集: {}, {1}, {2}, {3}, {1, 2}, {2, 3}, {1, 3}, {1, 2, 3}
{1, 2, 3}的真子集:{}, {1}, {2}, {3}, {1, 2}, {2, 3}, {1, 3}
"""
s1 = {1, 2, 3, 4, 5, 6, 7}
s2 = {4, 5, 6, 7, 8, 9}
result = s1 & s2
print(result)
result = s1 | s2
print(result)
s1 = {1, 2, 3, 4, 5, 6, 7}
s2 = {4, 5, 6, 7, 8, 9}
print(s1 - s2)
print(s2 - s1)
print(s1 ^ s2)
print({100, 200, 300, 400} > {1, 2})
print({100, 200, 300, 400} > {100, 400})