news 2026/8/22 0:14:24

思考与练习(第九章 组合数据类型)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
思考与练习(第九章 组合数据类型)

一、单项选择题(本大题共 10 小题)

1、关于 Python 中的列表,以下说法正确的是:

① 列表中的元素必须是相同类型

② 列表是有序、可变的序列类型

③ 列表可以使用圆括号 () 定义

④ 列表的元素必须是不可变类型

2、以下代码的输出结果是:

a = [1, 2, 3, 4, 5]print(a[1:4])

① [1, 2, 3, 4]

② [2, 3, 4]

③ [2, 3, 4, 5]

④ [1, 2, 3]

3、创建一个空集合的正确方法是:

① s = {}

② s = []

③ s = set()

④ s = ()

4、关于 Python 元组(tuple),以下说法错误的是:

① 元组可使用圆括号 () 定义

② 元组是不可变类型

③ 元组可以包含任意类型的元素,包括可变类型

④ 单元素元组必须使用 (element) 的形式

5、以下代码的输出结果是:

dict1 = {'a': 1, 'b': 2}dict2 = {'b': 3, 'c': 4}dict1.update(dict2)print(dict1)

① {'a': 1, 'b': 2, 'c': 4}

② {'a': 1, 'b': 3, 'c': 4}

③ {'a': 1, 'b': 2, 'b': 3, 'c': 4}

④ 程序出错

6、关于集合运算,以下说法正确的是:

① 集合支持索引访问

② 集合中的元素是有序的

③ 集合可以使用 + 运算符进行合并

④ 集合中的元素必须是可哈希的

7、以下代码的输出结果是:

t = (1, 2, [3, 4])t[2][0] = 5print(t)

① (1, 2, [3, 4])

② (1, 2, [5, 4])

③ 程序出错,元组不可变

④ (1, 2, 5)

8、使用字典的哪个方法可以安全地获取值,当键不存在时返回默认值:

① get()

② setdefault()

③ pop()

④ update()

9、以下代码的输出结果是:

s1 = {1, 2, 3}s2 = {3, 4, 5}print(s1 | s2)

① {1, 2, 3, 4, 5}

② {3}

③ {1, 2}

④ {4, 5}

10、关于列表推导式,以下代码的输出结果是:

result = [x*2 for x in range(5) if x % 2 == 0]print(result)

① [0, 2, 4, 6, 8]

② [0, 4, 8]

③ [0, 2, 4]

④ [0, 4]

二、判断题(本大题共 5 小题)

1、列表和元组都是有序序列,可以通过索引访问元素。( )

2、字典的键必须是不可变类型,如字符串、数字或元组。( )

3、集合中的元素可以是列表或其他集合。( )

4、使用切片操作可以修改元组中的元素。( )

5、Python 中的字典从 3.7 版本开始保证插入顺序。( )

三、多项选择题(本大题共 5 小题)

1、以下哪些是 Python 的组合数据类型?

① 列表

② 字符串

③ 字典

④ 集合

2、关于列表操作,以下哪些说法是正确的?

① 可以使用 append() 方法在列表末尾添加元素

② 可以使用 remove() 方法删除指定元素

③ 列表可以使用 sort() 方法进行原地排序

④ 列表可以使用 + 运算符进行合并

3、以下哪些操作可以用于字典?

① 使用 in 关键字检查键是否存在

② 使用 len() 获取键值对数量

③ 使用 items() 方法遍历键值对

④ 使用索引访问值,如 dict[0]

4、关于集合,以下哪些说法是正确的?

① 集合中的元素是唯一的

② 集合支持交集、并集、差集运算

③ 集合是有序的数据结构

④ 可以使用 add() 方法添加元素

5、以下哪些是创建字典的正确方法?

① d = {'a': 1, 'b': 2}

② d = dict(a=1, b=2)

③ d = dict([('a', 1), ('b', 2)])

④ d = {x: x**2 for x in range(3)}

四、程序填充题(本大题共 5 小题)

1、以下程序用于统计列表中元素的频率。请在下划线处补全代码。

numbers = [1, 2, 3, 2, 1, 3, 4, 5, 4, 2]frequency = {} for num in numbers: if num in frequency: frequency[num] += 1 else: ________ = 1 print(frequency)

2、以下程序使用集合找出两个列表的共同元素。请在下划线处补全代码。

list1 = [1, 2, 3, 4, 5]list2 = [4, 5, 6, 7, 8] set1 = ________set2 = ________common = set1 ________ set2 print("共同元素:", common)

3、以下程序使用列表推导式生成平方数列表。请在下划线处补全代码。

# 生成 1 到 10 的平方数列表squares = [________ for x in range(1, 11)]print(squares)

4、以下程序用于翻转字典的键和值。请在下划线处补全代码。

original = {'a': 1, 'b': 2, 'c': 3}reversed_dict = {} for key, value in original.items(): ________ = key print(reversed_dict)

5、以下程序使用元组存储学生信息并计算平均分。请在下划线处补全代码。

students = [("艾婉婷", 85), ("岳露珊", 92), ("鞠子舟", 78)] total = 0for name, score in ________: total += score average = ________ / len(students)print(f"平均分: {average:.2f}")

五、编程题(本大题共 5 小题)

1、列表操作综合题

编写程序,实现以下功能:

(1)创建一个包含 10 个随机整数(1~100)的列表

(2)找出列表中的最大值、最小值和平均值

(3)将列表按升序排序并输出

(4)删除列表中的重复元素

(5)主要变量:numbers, max_val, min_val, avg

2、字典统计应用题

编写程序,统计一段文本中每个单词出现的次数。

要求:

(1)输入一段英文文本(可以硬编码在程序中)

(2)将文本转换为小写,去除标点符号

(3)统计每个单词的出现频率

(4)输出出现频率最高的 3 个单词

(5)主要变量:text, words, word_count

3、集合运算题

编写程序,处理两个选修课班级的学生名单:

班级 A 有学生:张三、李四、王五、赵六

班级 B 有学生:王五、赵六、孙七、周八

要求:

(1)找出两个班级都有的学生(交集)

(2)找出只在班级 A 的学生(差集)

(3)找出所有学生(并集)

(4)主要变量:class_a, class_b, intersection, difference, union

4、元组和列表转换题

编写程序,实现以下功能:

(1)创建一个包含 5 个学生信息的元组列表,每个元组包含(姓名, 成绩)

(2)将成绩大于等于 90 分的学生筛选出来放进新列表

(3)将筛选结果按成绩降序排序

(4)输出优秀学生(成绩>=90)名单

(5)主要变量:students, excellent_students

5、综合应用题:学生成绩管理系统

编写一个简单的学生成绩管理系统:

(1)使用字典存储学生信息,键为学生姓名,值为成绩列表

(2)实现添加学生、添加成绩、查询成绩、计算平均分功能

(3)可以统计每个学生的平均分和全班平均分

(4)主要变量:students, name, scores

附:参考答案与解析

“点赞有美意,赞赏是鼓励”

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/21 10:04:59

动态表单编辑与智能下拉选择:提升Web应用用户体验的实用方案

动态表单编辑与智能下拉选择:提升Web应用用户体验的实用方案 【免费下载链接】x-editable vitalets/x-editable: 是一个用于实现表单字段在线编辑的jQuery插件,可以方便地在Web应用中实现表单字段的在线编辑。适合对jQuery、表单编辑和想要实现表单在线编…

作者头像 李华
网站建设 2026/8/20 0:06:00

Linux内核模块编程完全指南:从入门到实战精通

Linux内核模块编程完全指南:从入门到实战精通 【免费下载链接】lkmpg The Linux Kernel Module Programming Guide (updated for 5.0 kernels) 项目地址: https://gitcode.com/gh_mirrors/lk/lkmpg 想要真正理解Linux内核的奥秘?内核模块编程是通…

作者头像 李华
网站建设 2026/8/21 1:32:18

FaceFusion模型微调指南:基于自有数据集定制专属风格

FaceFusion模型微调实战:如何用自有数据训练专属换脸风格 在短视频、虚拟偶像和AI内容创作爆发的今天,人脸编辑技术早已不再是实验室里的概念。从“一键变脸”到“跨年龄模拟”,用户对生成结果的真实感与个性化要求越来越高。通用换脸模型虽…

作者头像 李华
网站建设 2026/8/21 22:25:49

FaceFusion在法庭证据演示中的谨慎使用建议

FaceFusion在法庭证据演示中的谨慎使用建议 在监控录像模糊不清、嫌疑人戴着帽子或口罩悄然出入禁区的案件中,法官和陪审团常常面临一个现实困境:仅凭几帧低分辨率画面,真的能准确识别身份吗?传统法医画像耗时数日且主观性强&…

作者头像 李华
网站建设 2026/8/21 4:38:49

从理论到落地:Open-AutoGLM多分辨率处理的9个关键细节

第一章:Open-AutoGLM多分辨率适配方案概述Open-AutoGLM 是一种面向多模态大模型的自适应视觉编码框架,专为处理不同分辨率输入图像而设计。该方案通过动态调整视觉编码器的特征提取策略,实现对高、中、低多种分辨率图像的高效理解与表征融合&…

作者头像 李华
网站建设 2026/8/20 22:56:58

Open-AutoGLM模型预处理秘技:3步实现输入错误率下降40%

第一章:Open-AutoGLM文本输入准确率提升方法概述在自然语言处理任务中,Open-AutoGLM作为一款基于自回归语言建模的开源框架,其输入文本的准确性直接影响生成结果的质量。为提升模型对输入内容的理解能力与响应精度,需从数据预处理…

作者头像 李华