FishC 发表于 2025-12-16 18:58:53

LZzz_Snail 发表于 2025-12-16 18:57
@FishC 下列哪种方式不能创建列表的浅拷贝?
A. list ...

选项 D list = 原列表 不能创建列表的浅拷贝。

解释:
- 选项 A:list.copy() 是列表的浅拷贝方法。
- 选项 B:list[:] 切片操作会创建浅拷贝。
- 选项 C:list(原列表) 使用 list() 函数会创建浅拷贝。
- 选项 D:list = 原列表 只是赋值,使两个变量引用同一个列表对象,没有创建新列表,因此不是拷贝。

示例代码:

original = ]
a = original.copy()# 浅拷贝
b = original[:]      # 浅拷贝
c = list(original)   # 浅拷贝
d = original         # 不是拷贝,是同一个对象

original = 99
print("original:", original)# 输出: ]
print("a:", a)# 输出: ],不变
print("b:", b)# 输出: ],不变
print("c:", c)# 输出: ],不变
print("d:", d)# 输出: ],随 original 改变


以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

LZzz_Snail 发表于 2025-12-16 19:00:00

@FishC 执行以下代码,result 的值是多少?

nums =
nums =
result = len(nums)

A. 5
B. 6
C. 7
D. 8

LZzz_Snail 发表于 2025-12-16 19:00:59

FishC 发表于 2025-12-16 19:01:36

LZzz_Snail 发表于 2025-12-16 19:00
@FishC 执行以下代码,result 的值是多少?

nums = ...

执行代码后,result 的值为 6,因此正确答案是 B。

解释:
- 初始列表:nums =
- nums.index(3) 返回 1(第一个 3 的索引)
- 切片 nums 对应
- 将此切片替换为 ,列表变为
- 因此 len(nums) 为 6,所以 result = 6

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

dongqing1 发表于 2025-12-18 16:12:18

@FishC 执行以下代码后,idx 的值是?

colors = ['red', 'blue', 'green', 'blue', 'yellow']
idx = colors.index('blue', 2)

A. 1
B. 2
C. 3
D. ValueError 异常

FishC 发表于 2025-12-18 16:12:45

dongqing1 发表于 2025-12-18 16:12
@FishC 执行以下代码后,idx 的值是?

colors =
...

根据代码分析:

colors = ['red', 'blue', 'green', 'blue', 'yellow']
idx = colors.index('blue', 2)

list.index() 方法从指定起始索引开始搜索元素。这里从索引 2 开始搜索 'blue':
- 索引 2:'green'(不匹配)
- 索引 3:'blue'(匹配)

因此返回索引 3,idx 的值为 3。

正确答案是 C. 3。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

火柴人618 发表于 2026-1-13 16:07:33

qwerty2200 发表于 2025-11-17 12:02
@FishC count() 方法的时间复杂度是?
A. O(1)
B. O(log n)


@FishC 执行以下代码后,result 的值是?

data =
result = data.count(2)

A. 1
B. 2
C. 3
D. 4

FishC 发表于 2026-1-13 16:08:17

火柴人618 发表于 2026-01-13 16:07
qwerty2200 发表于 2025-11-17 12:02
@FishC count() ...

qwerty2200 发表于 2025-11-17 12:02

针对您的问题:

问题1:count() 方法的时间复杂度
在 Python 中,列表的 count() 方法需要遍历整个列表,因此时间复杂度为 O(n),其中 n 是列表长度。您提供的选项 A. O(1) 和 B. O(log n) 均不正确。

问题2:执行代码后 result 的值
代码:

data =
result = data.count(2)

列表 data 中包含三个元素 2,所以 result 的值为 3,对应选项 C。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

FishC 发表于 2026-1-13 16:08:49

火柴人618 发表于 2026-01-13 16:07
qwerty2200 发表于 2025-11-17 12:02
@FishC count() ...

对于第一个问题,Python 列表的 count() 方法需要遍历整个列表来统计元素出现的次数,因此时间复杂度为 O(n)。但提供的选项中没有 O(n),所以 A 和 B 都不正确。在选择题中,如果必须从给定选项选择,可能意图是考察基础,但这里建议记住实际复杂度为 O(n)。

对于第二个问题,代码 data.count(2) 会统计数字 2 在列表中出现的次数。列表 中,2 出现了 3 次,因此 result 的值为 3,对应选项 C。

答案总结:
- 时间复杂度:实际为 O(n),但选项不完整。
- result 的值:C. 3

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

变西瓜 发表于 2026-2-13 14:47:07

@FishC 执行以下代码后,matrix 的值是?

matrix = [, ]
matrix_copy = matrix.copy()
matrix_copy = 9
print(matrix)

A. 1
B. 9
C.
D.

FishC 发表于 2026-2-13 14:47:42

变西瓜 发表于 2026-02-13 14:47
@FishC 执行以下代码后,matrix 的值是?

matrix = ...

答案:B.9

解释:
当使用 matrix.copy() 时,它执行的是浅拷贝。这意味着虽然 matrix_copy 是一个新列表,但其内部的子列表仍然是原 matrix 中子列表的引用。因此,修改 matrix_copy 实际上也会影响到 matrix。

代码示例:

matrix = [, ]
matrix_copy = matrix.copy()
matrix_copy = 9
print(matrix)# 输出 9


所以,执行后 matrix 的值为 9。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

爱吹的牛 发表于 2026-2-21 19:42:47

@FishC 下列哪个操作会导致错误?
A. 'hello' = 'H'
B. ['a', 'b'] = 'A'
C. [-1] = 30
D. ['x'] = ['y', 'z']

FishC 发表于 2026-2-21 19:42:58

爱吹的牛 发表于 2026-02-21 19:42
@FishC 下列哪个操作会导致错误?
A. 'hello' = 'H'
...

在 Python 中,字符串是不可变类型,因此不能通过索引直接修改字符串中的字符。而列表是可变类型,允许通过索引修改元素。


[*]选项 A:'hello' = 'H' 试图修改字符串的第一个字符,会导致 TypeError。
[*]选项 B、C、D 都是对列表进行索引赋值,这是允许的操作。


因此,正确答案是 A。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

爱吹的牛 发表于 2026-2-21 19:43:29

@FishC count() 方法的时间复杂度是?
A. O(1)
B. O(log n)
C. O(n)
D. O(n²)

FishC 发表于 2026-2-21 19:43:42

爱吹的牛 发表于 2026-02-21 19:43
@FishC count() 方法的时间复杂度是?
A. O(1)
B. O ...

正确答案是 C. O(n)。

简单解释:
Python 的 count() 方法(用于列表、字符串等序列)需要遍历整个序列来统计目标元素出现的次数。因此,它的时间复杂度与序列长度 n 成正比。

例子:

my_list =
# 下面这行代码会逐一检查 my_list 中的每个元素是否为 2
count_of_twos = my_list.count(2)
print(count_of_twos) # 输出:3


其他选项分析:
*   A. O(1):错误,因为它不是直接通过索引或哈希获取结果,必须遍历。
*   B. O(log n):错误,这通常是二分查找等算法的复杂度,不适用于线性扫描。
*   D. O(n^2):错误,这通常是嵌套循环的复杂度,count() 只进行单层遍历。

所以,在使用 count() 时,如果序列很长或需要频繁调用,需要考虑其性能影响。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

爱吹的牛 发表于 2026-2-21 19:44:09

@FishC 执行以下代码后,fruits 列表的内容是?

fruits = ['apple', 'banana', 'orange', 'grape']
fruits = ['kiwi']

A. ['apple', 'kiwi', 'grape']
B. ['apple', 'kiwi', 'orange', 'grape']
C. ['apple', 'banana', 'kiwi', 'grape']
D. ['kiwi']

FishC 发表于 2026-2-21 19:44:33

爱吹的牛 发表于 2026-02-21 19:44
@FishC 执行以下代码后,fruits 列表的内容是?

fr ...

首先,我们来分析代码:

初始列表 fruits 包含四个元素:


fruits = ['apple', 'banana', 'orange', 'grape']


切片 fruits 表示从索引 1 到索引 3(不包括索引 3),即元素 'banana' 和 'orange'。

执行赋值 fruits = ['kiwi'],这意味着用列表 ['kiwi'] 替换切片部分。由于切片有两个元素,而赋值列表只有一个元素,因此列表会调整大小:移除两个旧元素,插入一个新元素。

具体过程:
- 移除索引 1 和 2 的元素('banana' 和 'orange')。
- 在索引 1 处插入 'kiwi'。

结果列表变为:['apple', 'kiwi', 'grape']。

因此,正确答案是选项 A。


['apple', 'kiwi', 'grape']


以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

爱吹的牛 发表于 2026-2-21 19:45:31

@FishC 执行以下代码,result 的值是多少?

nums =
nums =
result = len(nums)

A. 5
B. 6
C. 7
D. 8

FishC 发表于 2026-2-21 19:46:06

爱吹的牛 发表于 2026-02-21 19:45
@FishC 执行以下代码,result 的值是多少?

nums = ...

让我们逐步分析代码:

nums =

nums.index(3) 返回第一个 3 的索引,即 1(索引从 0 开始)。
因此,切片 nums 也就是 nums,对应原列表中的元素 。

执行赋值 nums = ,这将原切片替换为三个元素 7。
列表从 变为 。

列表长度变为 6,所以 result = len(nums) 的值为 6。

因此,正确答案是 B.6。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

爱吹的牛 发表于 2026-2-22 19:17:53

@FishC 执行以下代码后,idx 的值是?

colors = ['red', 'blue', 'green', 'blue', 'yellow']
idx = colors.index('blue', 2)

A. 1
B. 2
C. 3
D. ValueError 异常
页: 1 2 [3] 4
查看完整版本: 第021讲:列表(III)