内容正文:
举一反三考点练
《Python程序设计》结构数据类型及其操作-课后自测
知识点一 列表
1.(单项选择题)在Python中,以下哪个选项创建的是一个空列表?( )
A. lst = ()
B. lst = []
C. lst = {}
D. lst = list('')
2.(单项选择题)已知列表 lst = [10, 20, 30, 40, 50],执行 lst[1:4] 的结果是?( )
A. [20, 30, 40]
B. [10, 20, 30]
C. [20, 30, 40, 50]
D. [30, 40]
3.(单项选择题)下列哪个方法可以在列表 lst = [1, 2] 的开头插入元素 0?( )
A. lst.append(0)
B. lst.insert(0, 0)
C. lst.add(0, 0)
D. lst.extend(0)
4.(判断题)列表的 sort() 方法和内置的 sorted() 函数都会改变原始列表。( )
5.(判断题)执行 lst1 = [1, 2]; lst2 = lst1; lst2.append(3) 后,lst1 的值也会变为 [1, 2, 3]。( )
6.(单项选择题)要统计列表 lst = ['a', 'b', 'a', 'c'] 中元素 'a' 出现的次数,应该使用?( )
A. lst.index('a')
B. lst.find('a')
C. lst.count('a')
D. len(lst)
7.(判断题)列表推导式 [x for x in range(5) if x % 2 == 0] 的结果是 [0, 2, 4]。( )
知识点二 元组
1.(单项选择题)下列哪个选项是创建一个包含单个元素5的元组的正确方式?( )
A. t = (5)
B. t = [5]
C. t = (5,)
D. t = tuple(5)
2.(单项选择题)元组与列表的主要区别在于?( )
A. 元组使用方括号,列表使用圆括号
B. 元组是有序的,列表是无序的
C. 元组是不可变的,列表是可变的
D. 元组不支持索引操作
3.(单项选择题)执行以下代码后,变量t的值是什么?( )
t = (1, 2, 3)
t = t + (4, 5)
A. (1, 2, 3)
B. (4, 5)
C. (1, 2, 3, 4, 5)
D. 程序会报错,因为元组不可变
4.(判断题)元组可以作为字典的键,但列表不可以。( )
5.(判断题)对于元组 t = ('a', 'b', 'c', 'a'),t.index('a') 的返回值是 0。( )
6.(判断题)元组的解包操作要求等号左边的变量数量必须与元组中的元素数量完全相等。( )
7.(单项选择题)下列关于元组的说法,错误的是?( )
A. 元组是Python中的一种有序序列
B. 元组一旦创建,其内容不能被修改
C. 访问元组元素的速度通常比访问列表元素慢
D. 可以使用 len() 函数获取元组的长度
知识点三 字典
1.(单项选择题)下列哪个选项可以作为Python字典的键?( )
A. 列表 [1, 2]
B. 字典 {'a': 1}
C. 元组 (1, 2)
D. 集合 {1, 2}
2.(单项选择题)执行以下代码后,字典 d 的内容是什么?( )
d = {'a': 1, 'b': 2}
d['a'] = 3
d['c'] = 4
A. {'a': 1, 'b': 2, 'c': 4}
B. {'a': 3, 'b': 2}
C. {'a': 3, 'b': 2, 'c': 4}
D. {'b': 2, 'c': 4}
3.(单项选择题)要从字典 d = {'name': 'Tom', 'age': 20} 中安全地获取 'gender' 的值,如果键不存在,希望返回字符串 'unknown',应该使用哪种方法?( )
A. d['gender']
B. d.get('gender')
C. d.get('gender', 'unknown')
D. d.pop('gender', 'unknown')
4.(单项选择题)下列哪个方法可以清空字典 d 中的所有元素?( )
A. del d
B. d.pop()
C. d.clear()
D. d.remove()
5.(判断题)在Python 3.7及以上版本中,字典会保留元素的插入顺序,因此在逻辑上应被视为有序集合。( )
6.(判断题)d.update({'x': 10, 'a': 100}) 操作中,如果键 'a' 已存在于字典 d 中,其对应的值会被更新为 100。( )
7.(判断题)for key, value in d.items(): 是遍历字典中所有键和值的推荐方式。( )
原创精品资源学科网独家享有版权,侵权必究!2
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
举一反三考点练
《Python程序设计》结构数据类型及其操作-课后自测
知识点一 列表
1.(单项选择题)在Python中,以下哪个选项创建的是一个空列表?( )
A. lst = ()
B. lst = []
C. lst = {}
D. lst = list('')
【答案】B
【解析】[]是创建空列表的直接方式。()创建空元组,{}创建空字典,list('')虽然也得到空列表[],但[]是最直接和常用的方式。
2.(单项选择题)已知列表 lst = [10, 20, 30, 40, 50],执行 lst[1:4] 的结果是?( )
A. [20, 30, 40]
B. [10, 20, 30]
C. [20, 30, 40, 50]
D. [30, 40]
【答案】A
【解析】切片操作[start:stop]是左闭右开的区间。lst[1:4]表示获取从索引1(包含)到索引4(不包含)的元素,即索引为1, 2, 3的元素。
3.(单项选择题)下列哪个方法可以在列表 lst = [1, 2] 的开头插入元素 0?( )
A. lst.append(0)
B. lst.insert(0, 0)
C. lst.add(0, 0)
D. lst.extend(0)
【答案】B
【解析】insert(index, obj)方法用于在指定的索引位置插入元素。在开头插入,索引应为0。append在末尾追加,add不是列表方法,extend用于追加可迭代对象。
4.(判断题)列表的 sort() 方法和内置的 sorted() 函数都会改变原始列表。( )
【答案】×
【解析】sort()是原地排序,会改变原始列表;而sorted()会返回一个排序后的新列表,原始列表保持不变。
5.(判断题)执行 lst1 = [1, 2]; lst2 = lst1; lst2.append(3) 后,lst1 的值也会变为 [1, 2, 3]。( )
【答案】√
【解析】列表是可变对象,赋值操作 lst2 = lst1 传递的是对象的引用,lst1和lst2指向同一个列表。因此,通过lst2修改列表,lst1也会受影响。
6.(单项选择题)要统计列表 lst = ['a', 'b', 'a', 'c'] 中元素 'a' 出现的次数,应该使用?( )
A. lst.index('a')
B. lst.find('a')
C. lst.count('a')
D. len(lst)
【答案】C
【解析】count(obj)方法用于统计指定元素在列表中出现的次数。index(obj)返回首个匹配元素的索引。
7.(判断题)列表推导式 [x for x in range(5) if x % 2 == 0] 的结果是 [0, 2, 4]。( )
【答案】√
【解析】该列表推导式遍历range(5)(即0到4),只保留满足if x % 2 == 0(偶数)条件的元素,因此结果是[0, 2, 4]。
知识点二 元组
1.(单项选择题)下列哪个选项是创建一个包含单个元素5的元组的正确方式?( )
A. t = (5)
B. t = [5]
C. t = (5,)
D. t = tuple(5)
【答案】C
【解析】创建单元素元组时,必须在元素后添加一个逗号,否则Python会将其视为一个普通的表达式或括号,如(5)会被当作整数5。[5]是列表,tuple(5)会报错,因为tuple()函数需要一个可迭代对象作为参数。
2.(单项选择题)元组与列表的主要区别在于?( )
A. 元组使用方括号,列表使用圆括号
B. 元组是有序的,列表是无序的
C. 元组是不可变的,列表是可变的
D. 元组不支持索引操作
【答案】C
【解析】元组和列表都是有序序列,都支持索引和切片。它们最核心的区别在于可变性:元组创建后其内容不可修改(不可变),而列表可以随意增删改(可变)。
3.(单项选择题)执行以下代码后,变量t的值是什么?( )
t = (1, 2, 3)
t = t + (4, 5)
A. (1, 2, 3)
B. (4, 5)
C. (1, 2, 3, 4, 5)
D. 程序会报错,因为元组不可变
【答案】C
【解析】虽然元组本身是不可变的,但这里的+操作符并不是在原地修改元组,而是创建了一个新的元组,其内容是两个元组的拼接,然后将这个新元组重新赋值给变量t。原元组(1, 2, 3)并未被改变。
4.(判断题)元组可以作为字典的键,但列表不可以。( )
【答案】√
【解析】字典的键必须是不可变且可哈希的类型。元组是不可变的,因此可以作为字典的键;而列表是可变的,不能作为字典的键。
5.(判断题)对于元组 t = ('a', 'b', 'c', 'a'),t.index('a') 的返回值是 0。( )
【答案】√
【解析】t.index(x) 方法用于返回元素 x 在元组中首次出现的索引。字符 'a' 首次出现在索引 0 的位置,因此返回值为 0。
6.(判断题)元组的解包操作要求等号左边的变量数量必须与元组中的元素数量完全相等。( )
【答案】√
【解析】标准的元组解包(如 a, b = (1, 2))要求变量和元素一一对应。如果数量不匹配,Python会抛出ValueError异常。
7.(单项选择题)下列关于元组的说法,错误的是?( )
A. 元组是Python中的一种有序序列
B. 元组一旦创建,其内容不能被修改
C. 访问元组元素的速度通常比访问列表元素慢
D. 可以使用 len() 函数获取元组的长度
【答案】C
【解析】由于元组是不可变的,其内存结构更简单,Python在实现上对其进行了优化,因此访问元组元素通常比访问列表元素更快,内存占用也更少。
知识点三 字典
1.(单项选择题)下列哪个选项可以作为Python字典的键?( )
A. 列表 [1, 2]
B. 字典 {'a': 1}
C. 元组 (1, 2)
D. 集合 {1, 2}
【答案】C
【解析】Python字典的键必须是不可变类型。列表、字典和集合都是可变类型,只有元组是不可变类型,因此可以作为键。
2.(单项选择题)执行以下代码后,字典 d 的内容是什么?( )
d = {'a': 1, 'b': 2}
d['a'] = 3
d['c'] = 4
A. {'a': 1, 'b': 2, 'c': 4}
B. {'a': 3, 'b': 2}
C. {'a': 3, 'b': 2, 'c': 4}
D. {'b': 2, 'c': 4}
【答案】C
【解析】d['a'] = 3 会修改键 'a' 对应的值。d['c'] = 4 会新增一个键值对。因此最终结果为 {'a': 3, 'b': 2, 'c': 4}。
3.(单项选择题)要从字典 d = {'name': 'Tom', 'age': 20} 中安全地获取 'gender' 的值,如果键不存在,希望返回字符串 'unknown',应该使用哪种方法?( )
A. d['gender']
B. d.get('gender')
C. d.get('gender', 'unknown')
D. d.pop('gender', 'unknown')
【答案】C
【解析】get() 方法可以在键不存在时返回 None 或指定的默认值。d.get('gender', 'unknown') 正好满足题目要求。d['gender'] 在键不存在时会报错。pop() 会删除键值对,不符合“获取”的需求。
4.(单项选择题)下列哪个方法可以清空字典 d 中的所有元素?( )
A. del d
B. d.pop()
C. d.clear()
D. d.remove()
【答案】C
【解析】d.clear() 方法用于清空字典,使其变为空字典。del d 是删除整个字典对象,而不是清空内容。字典没有 pop()(不带参数)和 remove() 方法。
5.(判断题)在Python 3.7及以上版本中,字典会保留元素的插入顺序,因此在逻辑上应被视为有序集合。( )
【答案】×
【解析】虽然Python 3.7+保留了插入顺序,但字典的核心特性仍然是基于键的快速查找,逻辑上仍被视为无序的键值对集合。不应依赖其顺序性进行与位置相关的操作。
6.(判断题)d.update({'x': 10, 'a': 100}) 操作中,如果键 'a' 已存在于字典 d 中,其对应的值会被更新为 100。( )
【答案】√
【解析】update() 方法会用新字典的内容更新当前字典。如果键已存在,则更新其值;如果键不存在,则新增键值对。
7.(判断题)for key, value in d.items(): 是遍历字典中所有键和值的推荐方式。( )
【答案】√
【解析】items() 方法返回一个包含所有 (key, value) 元组的视图对象,使用 for key, value in d.items(): 可以方便地同时遍历键和值,是Python中推荐的做法。
原创精品资源学科网独家享有版权,侵权必究!2
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$