1.增删改+指定位置操作)现有列表 score = 78, 92, 65, 88, 70
- 在索引2的位置插入数字95
- 删除列表中数值最小的元素
- 将最后一个元素修改为100
- 打印处理完成后的完整列表
代码:
python
score = [78, 92, 65, 88, 70]
score.insert(2, 95)
min_score = min(score)
score.remove(min_score)
score[-1] = 100
print(score)
运行结果:

思路:
①创建列表score,使用insert(索引,元素)在指定的索引2位置插入数字95,原位置后面的元素会自动后移。
②先算出列表中最小的值 -- min(列表);再删除列表中最小的值,remove(元素)直接删除列表中匹配的第一个元素,最小值唯一,可直接使用。
③列表最后一个元素,列表-1在python中代表列表最后一个元素,修改时直接赋值即可。
④使用print直接打印列表score
2.(索引、切片、倒序截取)
words = "春天","夏天","秋天","冬天","清晨","傍晚"
- 取出偶数下标全部元素
- 倒序切片取出中间4个元素
- 截取从第2个到倒数第2个元素并打印
代码:
python
words = ["春天","夏天","秋天","冬天","清晨","傍晚"]
even_index_words = words[::2]
print("偶数下标元素:", even_index_words)
middle_reverse = words[4:0:-1]
print("倒序中间4个:", middle_reverse)
result = words[1:-1]
print("第2个到倒数第2个:", result)
运行结果:

思路:
①列表下标从0开始计数,第一个元素下标是0,以此类推。本题中偶数下标为0、2、4,切片从头到尾,步长为2,最后打印结果。
②倒序切片取出中间4个元素,就是从索引4往回走到索引1,4:0:1表示从索引4走到索引0结束(不包含索引0),步长为-1,往回一次走一步到索引1。
③截取第2个到倒数第2个,直接从下标1开始到最后一个元素之前结束,刚好取到倒数第2个元素。
3.(遍历、条件筛选求和)
数字列表 nums = 12, -5, 33, 8, -10, 45, 21, -3
使用for循环完成:
- 筛选出列表里所有正数
- 计算所有正数的累加和
- 分别打印正数列表、正数总和
代码:
python
nums = [12, -5, 33, 8, -10, 45, 21, -3]
positive_nums = []
sum_positive = 0
for num in nums:
if num > 0:
positive_nums.append(num)
sum_positive += num
print("正数列表:", positive_nums)
print("正数总和:", sum_positive)
运行结果:

思路:
先准备两个容器,空列表储存筛选出的正数,变量sum_positive初值为0,用来累加求和。筛选正数,大于0就是正数,判断出之后将正数加入到列表,然后直接累加到总和中。
4.(用户输入+列表追加+统计次数)
初始化空列表 list1 = \[\]
- 循环让用户连续输入5个整数,全部存入列表
- 接收用户额外输入一个目标数字
- 统计目标数字在列表中出现的次数并输出提示
代码:
python
list1 = []
for i in range(5):
num = int(input("请输入整数:"))
list1.append(num)
target = int(input("请输入要查询的目标数字:"))
count = list1.count(target)
print(f"数字{target}在列表中出现了{count}次")
运行结果:

思路:
创建一个空列表list1,使用for循环让用户输入5个整数,执行5次循环(range(5)),用int()转变为整数存入列表。使用target接收用户输入的目标数字,count统计数字出现的次数,最后打印。
5.(综合难题:去重、筛选、排序、逆序)
原始列表 data = 16, 7, 22, 7, 9, 16, 30, 9, 12, 22, 5
要求分步实现:
- 列表去重,保留原始数据所有不重复数字
- 筛选出大于10的数字组成新列表
- 新列表从小到大排序后,再整体反转
- 输出最终结果
代码:
python
data = [16, 7, 22, 7, 9, 16, 30, 9, 12, 22, 5]
unique_data = []
for num in data:
if num not in unique_data:
unique_data.append(num)
greater_than_10 = []
for num in unique_data:
if num > 10:
greater_than_10.append(num)
greater_than_10.sort()
greater_than_10.reverse()
print("最终结果:", greater_than_10)
运行结果:

思路:
首先创建列表data。
①去重考虑用循环实现,遍历原列表,遇到没有出现过的数字就加入新的列表。
②筛选大于10的数字,直接使用if语句判断,符合条件加入新列表。
③从小到大排序,直接使用sort(),列表自带方法,直接把列表从小到大排序;整体反转直接使用reverse(),列表自带方法,直接将元素前后反转。
④输出结果直接打印。
6.(字符串分割+字典存储)
给定字符串 info = "张三:23,李四:21,王五:25" ,规则:
- 先按逗号分割每个人信息;
- 再按冒号分割姓名、年龄;
- 把数据存入字典,姓名为键,年龄转为数字为值;
- 最终打印完整字典,并输出字典里所有人的平均年龄。
代码:
python
info = "张三:23,李四:21,王五:25"
person_dict = {}
person_list = info.split(',')
for item in person_list:
name, age_str = item.split(':')
person_dict[name] = int(age_str)
avg_age = sum(person_dict.values()) / len(person_dict)
print("完整字典:", person_dict)
print("平均年龄:", avg_age)
运行结果:

思路:
①逗号分隔,使用split('分隔符')会把字符串按照指定符号切开。
②逐个处理每个人,冒号分隔姓名和年龄,姓名作为键,年龄转换为整数存入字典。
③打印出字典,用sum()求和,len()算总人数,相除得到平均值。
7.(字符串清洗+字典统计)
输入一段句子 text = "apple banana apple orange banana apple"
要求:
- 去除字符串多余空格,分割成单词列表;
- 使用字典统计每个水果出现的次数;
- 打印统计字典,并且打印出现次数最多的水果。
代码:
python
text = "apple banana apple orange banana apple"
word_list = text.split()
count_dict = {}
for word in word_list:
if word in count_dict:
count_dict[word] += 1
else:
count_dict[word] = 1
print("单词统计:", count_dict)
most_word = max(count_dict, key=count_dict.get)
print("出现次数最多的水果:", most_word)
运行结果:

思路:
①直接使用split()分割,会自动处理多余的空格。
②统计次数,遍历每个单词,见过就+1。
③最大次数使用max():按照字典的值找到最大值。
8.(字典遍历+字符串拼接)
有学生分数字典:
score = {"小明": 88, "小红": 95, "小刚": 72, "小丽": 91}
要求:
- 遍历字典,筛选分数大于90分的学生;
- 将高分学生姓名用 、 拼接成一句字符串;
- 打印输出:本次优秀学生名单:xxx、xxx
代码:
python
score = {"小明": 88, "小红": 95, "小刚": 72, "小丽": 91}
student = []
for name, s in score.items():
if s > 90:
student.append(name)
result_str = '、'.join(student)
print(f"本次优秀学生名单:{result_str}")
运行结果:

思路:
先创建一个字典存放学生信息,一个空列表存放学生姓名。使用 字典.items() 遍历字典,筛选出分数大于90分的学生,得到高分学生信息后用'分隔符'.join(列表)将高分学生姓名用顿号拼接,最后打印。
9.(字符串替换、切片+字典更新)
user = {"name": "tom", "age": 28}
name_str = "TOM_1996"
需求:
- 截取 name_str 下划线前的英文,全部小写,替换字典里原来的name;
- 截取下划线后数字转为整数,计算今年2026减去出生年份,更新age;
- 打印更新后的完整字典。
代码:
python
user = {"name": "tom", "age": 28}
name_str = "TOM_1996"
parts = name_str.split('_')
new_name = parts[0].lower()
user['name'] = new_name
birth_year = int(parts[1])
new_age = 2026 - birth_year
user['age'] = new_age
print("更新后的字典:", user)
运行结果:

思路:
使用split()分割,取下划线前的英文,.lower()方法直接转为小写再更新字典;取下划线后的数字转为整数,先使用int()转为整数,再和2026相减计算年龄。
10.(综合大题:字符串解析、字典嵌套、条件筛选)
原始文本:
data = "篮球:张三,90;羽毛球:李四,85;篮球:王五,82;乒乓球:赵六,95"
要求:
- 按分号拆分每条运动数据;
- 构建嵌套字典,格式 {运动名称: {姓名: 分数}} ;
- 遍历字典,找出篮球项目平均分;
- 用字符串格式化输出:篮球项目平均分数为xx分。
代码:
python
data = "篮球:张三,90;羽毛球:李四,85;篮球:王五,82;乒乓球:赵六,95"
sport_dict = {}
item_list = data.split(';')
for item in item_list:
sport, info = item.split(':')
name, score_str = info.split(',')
score = int(score_str)
if sport not in sport_dict:
sport_dict[sport] = {}
sport_dict[sport][name] = score
basketball_scores = sport_dict['篮球'].values()
avg_score = sum(basketball_scores) / len(basketball_scores)
print(f"篮球项目平均分数为{avg_score}分")
运行结果:

思路:
①使用split()用分号拆分数据。
②构建嵌套字典:
首先按冒号拆分出运动名和姓名+分数,然后按逗号拆分姓名和分数,如果运动没有在字典中,构建一个空字典把姓名和运动存入。
③计算篮球平均分,调用字典中篮球分数除以人数得到结果,最后格式化输出。