列表测试题
题目1(增删改+指定位置操作)现有列表 score = [78, 92, 65, 88, 70]
1. 在索引2的位置插入数字95
2. 删除列表中数值最小的元素
3. 将最后一个元素修改为100
4. 打印处理完成后的完整列表
score = [78, 92, 65, 88, 70] # 1. 在索引2的位置插入数字95 score.insert(2, 95) # 2. 删除列表中数值最小的元素 # 先找出最小值,再根据值进行删除 min_val = min(score) score.remove(min_val) # 3. 将最后一个元素修改为100 score[-1] = 100 # 4. 打印处理完成后的完整列表 print("题目1结果:", score)题目2(索引、切片、倒序截取)
words = ["春天","夏天","秋天","冬天","清晨","傍晚"]
1. 取出偶数下标全部元素
2. 倒序切片取出中间4个元素
3. 截取从第2个到倒数第2个元素并打印
words = ["春天","夏天","秋天","冬天","清晨","傍晚"] # 1. 取出偶数下标全部元素 (步长为2) print("题目2-1:", words[::2]) # 2. 倒序切片取出中间4个元素 # 原列表倒序为:['傍晚', '清晨', '冬天', '秋天', '夏天', '春天'] # 中间4个是:'清晨', '冬天', '秋天', '夏天' # 对应的倒序索引是 [1:5] print("题目2-2:", words[-2:-6:-1]) # 或者使用正序切片后反转:print(words[1:5][::-1]) # 3. 截取从第2个到倒数第2个元素并打印 # 第2个元素索引是1,倒数第2个元素的下一个索引是-1 print("题目2-3:", words[1:-1])题目3(遍历、条件筛选求和)
数字列表 nums = [12, -5, 33, 8, -10, 45, 21, -3]
使用for循环完成:
1. 筛选出列表里所有正数
2. 计算所有正数的累加和
3. 分别打印正数列表、正数总和
nums = [12, -5, 33, 8, -10, 45, 21, -3] positive_nums = [] # 存放正数 total_sum = 0 # 存放正数累加和 # 使用for循环遍历 for num in nums: if num > 0: # 筛选正数 positive_nums.append(num) total_sum += num # 打印结果 print("题目3-正数列表:", positive_nums) print("题目3-正数总和:", total_sum)
题目4(用户输入+列表追加+统计次数)
初始化空列表 user_list = []
1. 循环让用户连续输入5个整数,全部存入列表
2. 接收用户额外输入一个目标数字
3. 统计目标数字在列表中出现的次数并输出提示
user_list = [] # 1. 循环让用户连续输入5个整数 for _ in range(5): try: val = int(input("请输入一个整数: ")) user_list.append(val) except ValueError: print("输入无效,请输入数字。") # 2. 接收用户额外输入一个目标数字 try: target = int(input("请输入要统计的目标数字: ")) # 3. 统计目标数字在列表中出现的次数 count = user_list.count(target) print(f"目标数字 {target} 在列表中出现了 {count} 次。") except ValueError: print("目标数字输入无效。")
题目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] # 1. 列表去重,保留原始数据所有不重复数字 # 使用 dict.fromkeys() 可以在去重的同时保持原有顺序 unique_data = list(dict.fromkeys(data)) # 2. 筛选出大于10的数字组成新列表 new_list = [num for num in unique_data if num > 10] # 3. 新列表从小到大排序后,再整体反转 new_list.sort() # 从小到大排序 new_list.reverse() # 整体反转 (或者用 new_list = new_list[::-1]) # 4. 输出最终结果 print("题目5最终结果:", new_list)字典字符串测试题
题目1(字符串分割+字典存储)
给定字符串 info = "张三:23,李四:21,王五:25" ,规则:
1. 先按逗号分割每个人信息;
2. 再按冒号分割姓名、年龄;
3. 把数据存入字典,姓名为键,年龄转为数字为值;
4. 最终打印完整字典,并输出字典里所有人的平均年龄。
info = "张三:23,李四:21,王五:25" student_dict = {} # 1. 先按逗号分割 person_list = info.split(",") for person in person_list: # 2. 再按冒号分割 name, age_str = person.split(":") # 3. 存入字典,年龄转数字 student_dict[name] = int(age_str) # 4. 打印字典 print("完整字典:", student_dict) # 计算平均年龄:sum(值列表) / 长度 avg_age = sum(student_dict.values()) / len(student_dict) print(f"平均年龄: {avg_age:.2f}")题目2(字符串清洗+字典统计)
输入一段句子 text = "apple banana apple orange banana apple"
要求:
1. 去除字符串多余空格,分割成单词列表;
2. 使用字典统计每个水果出现的次数;
3. 打印统计字典,并且打印出现次数最多的水果。
text = "apple banana apple orange banana apple" # 1. 去除多余空格并分割 words = text.strip().split() # 2. 统计次数 count_dict = {} for word in words: # 如果word存在返回当前值,不存在返回0,然后+1 count_dict[word] = count_dict.get(word, 0) + 1 # 3. 打印统计结果 print("统计字典:", count_dict) # 找出出现次数最多的水果 # max(字典, key=字典.get) 会返回 value 最大的那个 key max_fruit = max(count_dict, key=count_dict.get) print(f"出现次数最多的水果: {max_fruit} ({count_dict[max_fruit]}次)")
题目3(字典遍历+字符串拼接)
有学生分数字典:
score = {"小明": 88, "小红": 95, "小刚": 72, "小丽": 91}
要求:
1. 遍历字典,筛选分数大于90分的学生;
2. 将高分学生姓名用 、 拼接成一句字符串;
3. 打印输出:本次优秀学生名单:xxx、xxx
score = {"小明": 88, "小红": 95, "小刚": 72, "小丽": 91} high_score_names = [] # 1. 遍历筛选 for name, sc in score.items(): if sc > 90: high_score_names.append(name) # 2. 拼接字符串 # 注意:join 的参数必须是字符串列表 result_str = "、".join(high_score_names) # 3. 打印 print(f"本次优秀学生名单:{result_str}")
题目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. 截取下划线前的英文,全部小写 new_name = name_str.split("_")[0].lower() user["name"] = new_name # 更新字典 # 2. 截取下划线后数字,计算年龄 birth_year = int(name_str.split("_")[1]) current_year = 2026 # 题目指定今年2026 user["age"] = current_year - birth_year # 更新字典 # 3. 打印 print("更新后的字典:", user)
题目5(综合大题:字符串解析、字典嵌套、条件筛选)
原始文本:
data = "篮球:张三,90;羽毛球:李四,85;篮球:王五,82;乒乓球:赵六,95"
要求:
1. 按分号拆分每条运动数据;
2. 构建嵌套字典,格式 {运动名称: {姓名: 分数}} ;
3. 遍历字典,找出篮球项目平均分;
4. 用字符串格式化输出:篮球项目平均分数为xx分。
data = "篮球:张三,90;羽毛球:李四,85;篮球:王五,82;乒乓球:赵六,95" # 1. 按分号拆分 records = data.split(";") # 2. 构建嵌套字典 {运动: {姓名: 分数}} sports_dict = {} for record in records: # 先按冒号拆:['篮球', '张三,90'] sport, info = record.split(":") # 再按逗号拆:['张三', '90'] name, score_str = info.split(",") score_val = int(score_str) # 如果运动还没在字典里,先初始化空字典 if sport not in sports_dict: sports_dict[sport] = {} # 存入姓名和分数 sports_dict[sport][name] = score_val # 3. 找出篮球项目平均分 basketball_scores = sports_dict["篮球"].values() avg_basketball = sum(basketball_scores) / len(basketball_scores) # 4. 格式化输出 print(f"篮球项目平均分数为{avg_basketball:.2f}分") # (可选) 打印完整嵌套字典看看结构 # print(sports_dict)