python暑假第二次作业(列表与字典训练)
📅 2026/7/30 7:25:29
👁️ 阅读次数
📝 编程学习
题目1(增删改+指定位置操作)现有列表score = [78, 92, 65, 88, 70]
1.在索引2的位置插入数字95
2.删除列表中数值最小的元素
3.将最后一个元素修改为100
4.打印处理完成后的完整列表 """
score = [78, 92, 65, 88, 70] score.insert(2,95) score.remove(min(score)) score[-1] = 100 print(score)![]()
编辑
题目2(索引、切片、倒序截取)
words = ["春天","夏天","秋天","冬天","清晨","傍晚"]
1.取出偶数下标全部元素
2.倒序切片取出中间4个元素#res1 =["清晨","冬天","秋天“,"夏天"]#从下标4取到下标1
3.截取从第2个到倒数第2个元素并打印"""
words = ["春天", "夏天", "秋天", "冬天", "清晨", "傍晚"] res = words[::2] print(res) res1 = words[-2:-6:-1] print(res1) res2 = words[1:-1] print(res2)
题目3(遍历、条件筛选求和)
数字列表 nums = [12, -5, 33, 8, -10, 45, 21, -3]
使用for循环完成:
1.筛选出列表里所有正数
2.计算所有正数的累加和
3.分别打印正数列表、正数总和"""
nums = [12, -5, 33, 8, -10, 45, 21, -3] sum = 0 lst = [] for i in nums: if i >=0: lst.append(i) sum += i print(lst) print(sum)
![]()
编辑
题目4(用户输入+列表追加+统计次数)
#初始化空列表 user_list = []
#1.循环让用户连续输入5个整数,全部存入列表
#2.接收用户额外输入一个目标数字
#3.统计目标数字在列表中出现的次数并输出提示"""
user_list = [] # 循环录入5个整数 for i in range(5): num = int(input(f"请输入第{i+1}个整数:")) user_list.append(num) # 输入目标数 target = int(input("请输入要统计次数的数字:")) # 统计次数 count = user_list.count(target) print(f"数字{target}一共出现了{count}次")题目5(综合难题:去重、筛选、排序、逆序)
原始列表 data = [16, 7, 22, 7, 9, 16, 30, 9, 12, 22, 5]
要求分步实现:
1.列表去重,保留原始数据所有不重复数字
2.筛选出大于10的数字组成新列表
3.新列表从小到大排序后,再整体反转
4.输出最终结果
"""
data = [16, 7, 22, 7, 9, 16, 30, 9, 12, 22, 5] new_data = [] for i in data: if i not in new_data: new_data.append(i) lst = [x for x in new_data if x >10] lst.sort() lst.reverse() print("最终结果:",lst)题目1. 先按逗号分割每个人信息;
2. 再按冒号分割姓名、年龄;
3. 把数据存入字典,姓名为键,年龄转为数字为值;
4. 最终打印完整字典,并输出字典里所有人的平均年龄。
"""
info = "张三:23,李四:21,王五:25"
# 1. res = info.split(",") # ['张三:23', '李四:21', '王五:25'] person_info = {} # 定义存储基本信息的字典 # 2. for item in res: person_lst = item.split(":") #['王五', '25'] # 3.将列表数据,存储在字典中 person_info[person_lst[0]] = int(person_lst[1]) # 求和 # for age in person_info.values(): # sum_age += age # 4. avg_age = sum(person_info.values())/len(person_info) print(person_info,"平均年龄为:",avg_age) #{'张三': 23, '李四': 21, '王五': 25}题目2(字符串清洗+字典统计)
输入一段句子 text = "apple banana apple orange banana apple"
要求:
1.去除字符串多余空格,分割成单词列表;
2.使用字典统计每个水果出现的次数;
3.打印统计字典,并且打印出现次数最多的水果。
"""
text = "apple banana apple orange banana apple"
res = text.split(" ") #['apple', 'banana', 'apple', 'orange', 'banana', 'apple'] # 2. # 创建水果字典 fruit_info = {} for item in res: # 判断水果单词是否在水果字典中为key if item in fruit_info: fruit_info[item] += 1 else: fruit_info[item] = 1 # 3. # 创建最大值临时变量 max_temp = 0 # 创建记录最大次数的水果 fruit = "" for k,v in fruit_info.items(): if v > max_temp: max_temp = v # 记录k fruit = k print(fruit_info,"出现次数最多的水果为:",fruit) #{'apple': 3, 'banana': 2, 'orange': 1}
题目3(字典遍历+字符串拼接)
有学生分数字典:
score = {"小明": 88, "小红": 95, "小刚": 72, "小丽": 91}
要求:
1.遍历字典,筛选分数大于90分的学生;
2.将高分学生姓名用 、 拼接成一句字符串;
3.打印输出:本次优秀学生名单:xxx、xxx
"""
score = {"小明": 88, "小红": 95, "小刚": 72, "小丽": 91} # 1 # 2 定义一个存储高分学生姓名的列表 name_res = [] for name,score in score.items(): if score > 90: name_res.append(name) print("本次优秀学生名单:","、".join(name_res))题目4(字符串替换、切片+字典更新)
user = {"name": "tom", "age": 28}
name_str = "TOM_1996"
需求:
1. 截取 name_str 下划线前的英文,全部小写,替换字典里原来的name;
2. 截取下划线后数字转为整数,计算今年2026减去出生年份,更新age;
3. 打印更新后的完整字典。
"""
user = {"name": "tom", "age": 28} name_str = "TOM_1996" # 1 # name_str_lst = name_str.split("_") # print(name_str_lst[0]) # print(name_str_lst[1]) new_name, year = name_str.split("_") user["name"] = new_name.lower() # 2 user["age"] = 2026 - int(year) # 3 print(user)题目5【综合大题:字符串解析、字典嵌套、条件筛选】
原始文本:
data = "篮球:张三,90;羽毛球:李四,85;篮球:王五,82;乒乓球:赵六,95"
要求:
1. 按分号拆分每条运动数据;
2. 构建嵌套字典,格式 {运动名称: {姓名: 分数,姓名: 分数}};
3. 遍历字典,找出篮球项目平均分;
4. 用字符串格式化输出:篮球项目平均分为xx分。
"""
print("-----------------------5--------------------------------")
data = "篮球:张三,90;羽毛球:李四,85;篮球:王五,82;乒乓球:赵六,95"
"""
提示:
dict1 = {"username":"123"}
加元素: dict1[key] = value
取元素: dict1[key]
"""
" # 第一种方式 # 1. 对data字符串拆分->列表 res = data.split(";") #['篮球:张三,90', '羽毛球:李四,85', '篮球:王五,82', '乒乓球:赵六,95'] # 2. # 创建一个存储整个信息的字典 sport_dict = {} # 遍历列表 for item in res: # 差分列表元素的三个值,运动名称sport_name 运动员姓名:name 运动员分数:score sport_name,person_info = item.split(":") #篮球 张三,90 name,score = person_info.split(",") #张三 90 # 创建子字典用于存储运动员信息(key:运动员名称name,value:运动员分数:score) person_info_dict = {} # 存储整个字典信息->问题:运动名称存在相同的,判断键是否存在 if sport_name in sport_dict: # 则进行在运动员信息子字典中追加元素 # 1.取出子字典,运动员信息 res = sport_dict[sport_name] res[name] = int(score) else: # 直接赋值运动员信息子字典即可 # 1.初始化子字典存储运动员信息数据 person_info_dict[name] = int(score) # 将子字典作为值,赋值在外层字典的key中 sport_dict[sport_name] = person_info_dict print(sport_dict) #{'篮球': {'张三': 90, '王五': 82}, '羽毛球': {'李四': 85}, '乒乓球': {'赵六': 95}}
编程学习
技术分享
实战经验