鱼C论坛

 找回密码
 立即注册
123
返回列表 发新帖
楼主: 小甲鱼

[快问快答] 第021讲:列表(III)

[复制链接]
发表于 2025-12-16 18:58:53 | 显示全部楼层
零基础入门学习Python封面
《零基础入门学习Python》
(最新版)
小甲鱼 著
立即购买
LZzz_Snail 发表于 2025-12-16 18:57
@FishC 下列哪种方式不能创建列表的浅拷贝?
A. list ...


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

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

示例代码:

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

  6. original[0] = 99
  7. print("original:", original)  # 输出: [99, 2, [3, 4]]
  8. print("a:", a)  # 输出: [1, 2, [3, 4]],不变
  9. print("b:", b)  # 输出: [1, 2, [3, 4]],不变
  10. print("c:", c)  # 输出: [1, 2, [3, 4]],不变
  11. print("d:", d)  # 输出: [99, 2, [3, 4]],随 original 改变
复制代码


以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-12-16 19:00:00 | 显示全部楼层
@FishC 执行以下代码,result 的值是多少?

nums = [5, 3, 8, 3, 1]
nums[nums.index(3):nums.index(3)+2] = [7, 7, 7]
result = len(nums)

A. 5
B. 6
C. 7
D. 8
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-12-16 19:00:59 | 显示全部楼层
2025-12-16_190043.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-12-16 19:01:36 | 显示全部楼层
LZzz_Snail 发表于 2025-12-16 19:00
@FishC 执行以下代码,result 的值是多少?

nums = ...


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

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

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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 异常
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-12-18 16:12:45 | 显示全部楼层
dongqing1 发表于 2025-12-18 16:12
@FishC 执行以下代码后,idx 的值是?

colors =
...


根据代码分析:

  1. colors = ['red', 'blue', 'green', 'blue', 'yellow']
  2. idx = colors.index('blue', 2)
复制代码


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

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

正确答案是 C. 3。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2026-1-13 16:07:33 | 显示全部楼层
qwerty2200 发表于 2025-11-17 12:02
@FishC count() 方法的时间复杂度是?
A. O(1)
B. O(log n)

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

data = [7, 2, 9, 2, 5, 2, 8]
result = data.count(2)

A. 1
B. 2
C. 3
D. 4
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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 的值
代码:

  1. data = [7, 2, 9, 2, 5, 2, 8]
  2. result = data.count(2)
复制代码

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

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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)。

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

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

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-7 03:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表