鱼C论坛

 找回密码
 立即注册
楼主: 小甲鱼

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

[复制链接]
发表于 2026-2-22 19:18:07 | 显示全部楼层
零基础入门学习Python封面
《零基础入门学习Python》
(最新版)
小甲鱼 著
立即购买
爱吹的牛 发表于 2026-02-22 19:17
@FishC 执行以下代码后,idx 的值是?

colors =
...


执行代码后,idx 的值是 3,对应选项 C。

解释:
- colors.index('blue', 2) 表示从索引 2 开始搜索元素 'blue'
- 列表 colors 的索引如下:
  

      
  • 索引 0: 'red'
      
  • 索引 1: 'blue'
      
  • 索引 2: 'green'
      
  • 索引 3: 'blue'
      
  • 索引 4: 'yellow'
      

- 从索引 2 开始搜索,第一个匹配的 'blue' 出现在索引 3 处。
- 因此,idx 被赋值为 3。

注意:如果未找到元素,会抛出 ValueError 异常,但本例中找到了匹配项。

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

使用道具 举报

发表于 5 天前 | 显示全部楼层
@FishC 执行以下代码,会输出什么?

lst = [3, 1, 4, 1, 5]
print(lst.index(1, lst.index(1) + 1))

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

使用道具 举报

发表于 5 天前 | 显示全部楼层
abccc123 发表于 2026-03-15 10:49
@FishC 执行以下代码,会输出什么?

lst =
print ...


输出是 D. 3。

解释如下:

列表 lst 为 [3, 1, 4, 1, 5]。

lst.index(1) 返回第一个元素 1 的索引,即 1。

因此,lst.index(1) + 1 等于 2。

外层调用 lst.index(1, lst.index(1) + 1) 等价于 lst.index(1, 2),表示从索引 2 开始查找元素 1 第一次出现的位置。

从索引 2 开始,列表元素依次为 4(索引2)、1(索引3)、5(索引4),所以找到的索引为 3。

因此,最终输出 3。

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

使用道具 举报

发表于 5 天前 | 显示全部楼层
@FishC 执行以下代码后,输出的结果是?

items = ['A', 'B', 'C', 'D']
copy_items = items[:]
items[0] = 'Z'
print(copy_items[0])

A. 'A'
B. 'Z'
C. Error
D. None
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 5 天前 | 显示全部楼层
abccc123 发表于 2026-03-15 10:51
@FishC 执行以下代码后,输出的结果是?

items =
...


执行代码后,输出的结果是 A. 'A'。

解释如下:
- 使用切片操作 items[:] 创建了列表的浅拷贝,因此 copy_items 是独立于 items 的新列表。
- 修改 items[0] 为 'Z' 只影响原列表,不影响拷贝列表。
- 所以,print(copy_items[0]) 输出 'A'。

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

使用道具 举报

发表于 5 天前 | 显示全部楼层
@FishC 下列哪个操作会导致错误?
A. 'hello'[0] = 'H'
B. ['a', 'b'][0] = 'A'
C. [1, 2, 3][-1] = 30
D. ['x'][0] = ['y', 'z']
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 5 天前 | 显示全部楼层
abccc123 发表于 2026-03-15 10:52
@FishC 下列哪个操作会导致错误?
A. 'hello' = 'H'
...


正确答案是A。

因为Python中的字符串是不可变对象,不能通过索引赋值来修改其内容。尝试执行 'hello'[0] = 'H' 会引发TypeError。


  1. 'hello'[0] = 'H'  # 错误:TypeError: 'str' object does not support item assignment
复制代码


其他选项都是对列表的操作,而列表是可变对象,允许通过索引赋值修改元素:
- B:['a', 'b'][0] = 'A' 将第一个元素改为 'A',列表变为 ['A', 'b']
- C:[1, 2, 3][-1] = 30 将最后一个元素改为30,列表变为 [1, 2, 30]
- D:['x'][0] = ['y', 'z'] 将第一个元素改为一个列表,列表变为 [['y', 'z']]

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

使用道具 举报

发表于 昨天 18:55 | 显示全部楼层
@FishC 以下哪个操作会修改原列表?
A. sorted(list)
B. list.sort()
C. list + [1, 2]
D. list * 2
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 昨天 18:55 | 显示全部楼层
wdw12 发表于 2026-03-19 18:55
@FishC 以下哪个操作会修改原列表?
A. sorted(list) ...


答案是 B. list.sort(),它会修改原列表。

解释:
  • A. sorted(list):返回一个新的排序列表,原列表保持不变。
  • B. list.sort():原地排序列表,直接修改原列表。
  • C. list + [1, 2]:拼接操作,返回新列表,原列表不变。
  • D. list * 2:重复操作,返回新列表,原列表不变。


示例代码:

  1. # 假设原列表为 my_list = [3, 1, 2]
  2. my_list = [3, 1, 2]

  3. # A. sorted(my_list) 返回 [1, 2, 3],但 my_list 仍为 [3, 1, 2]
  4. sorted_list = sorted(my_list)

  5. # B. my_list.sort() 修改 my_list 为 [1, 2, 3]
  6. my_list.sort()

  7. # C. my_list + [1, 2] 返回新列表,my_list 不变
  8. new_list = my_list + [1, 2]

  9. # D. my_list * 2 返回新列表,my_list 不变
  10. repeated_list = my_list * 2
复制代码


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

使用道具 举报

发表于 昨天 21:24 | 显示全部楼层
@FishC 以下哪个操作会修改原列表?
A. sorted(list)
B. list.sort()
C. list + [1, 2]
D. list * 2
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 昨天 21:24 | 显示全部楼层
haly 发表于 2026-03-19 21:24
@FishC 以下哪个操作会修改原列表?
A. sorted(list) ...


B. list.sort() 会修改原列表。

解释:
  • A. sorted(list):返回一个新的排序列表,不修改原列表。
  • B. list.sort():原地对列表排序,直接修改原列表。
  • C. list + [1, 2]:列表拼接,返回一个新列表,原列表不变。
  • D. list * 2:列表重复,返回一个新列表,原列表不变。


示例:

  1. my_list = [3, 1, 2]

  2. # A. sorted() 不修改原列表
  3. new_list = sorted(my_list)
  4. print("sorted() 后原列表:", my_list)  # 输出 [3, 1, 2]

  5. # B. sort() 修改原列表
  6. my_list.sort()
  7. print("sort() 后原列表:", my_list)  # 输出 [1, 2, 3]

  8. # C. 列表加法不修改原列表
  9. my_list = [3, 1, 2]
  10. result = my_list + [1, 2]
  11. print("加法后原列表:", my_list)  # 输出 [3, 1, 2]

  12. # D. 列表乘法不修改原列表
  13. my_list = [3, 1, 2]
  14. result = my_list * 2
  15. print("乘法后原列表:", my_list)  # 输出 [3, 1, 2]
复制代码


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

使用道具 举报

发表于 昨天 21:27 | 显示全部楼层
@FishC 执行以下代码,会输出什么?

lst = [3, 1, 4, 1, 5]
print(lst.index(1, lst.index(1) + 1))

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

使用道具 举报

发表于 昨天 21:28 | 显示全部楼层
haly 发表于 2026-03-19 21:27
@FishC 执行以下代码,会输出什么?

lst =
print ...


代码分析如下:

  1. lst = [3, 1, 4, 1, 5]
  2. print(lst.index(1, lst.index(1) + 1))
复制代码


1. lst.index(1) 返回第一个值为 1 的索引,即 1(因为索引从0开始,列表为 [3, 1, 4, 1, 5])。
2. lst.index(1) + 1 结果为 2
3. lst.index(1, 2) 从索引 2 开始搜索值为 1 的元素,找到索引 3 处的 1
4. 因此,输出为 3

对应选项 D。

答案:D. 3

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

使用道具 举报

发表于 昨天 21:33 | 显示全部楼层
@FishC 对于列表 lst = ['Python', 'Java', 'C++'],lst.sort(key=len) 会按什么排序?
A. 字母顺序
B. 反字母顺序
C. 字符串长度
D. ASCII码值总和
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 昨天 21:34 | 显示全部楼层
haly 发表于 2026-03-19 21:33
@FishC 对于列表 lst = ,lst.sort(key=len) 会按什么 ...


正确答案是 C. 字符串长度。

解释:lst.sort(key=len) 会使用 len 函数作为排序键,即根据每个字符串的长度进行排序,而不是按字母顺序或其他方式。

示例:

  1. lst = ['Python', 'Java', 'C++']
  2. lst.sort(key=len)
  3. print(lst)  # 输出:['C++', 'Java', 'Python']
复制代码

排序后,列表按字符串长度升序排列:'C++'(长度3)、'Java'(长度4)、'Python'(长度6)。

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

使用道具 举报

发表于 昨天 21:40 | 显示全部楼层
@FishC 执行以下代码后,输出的结果是?

items = ['A', 'B', 'C', 'D']
copy_items = items[:]
items[0] = 'Z'
print(copy_items[0])

A. 'A'
B. 'Z'
C. Error
D. None
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 昨天 21:41 | 显示全部楼层
haly 发表于 2026-03-19 21:40
@FishC 执行以下代码后,输出的结果是?

items =
...


首先,让我们分析代码:

  1. items = ['A', 'B', 'C', 'D']
  2. copy_items = items[:]
  3. items[0] = 'Z'
  4. print(copy_items[0])
复制代码


- items[:] 使用切片创建了列表 items 的一个副本,因此 copy_items 是一个独立的新列表。
- 修改 items[0]'Z' 只影响原始列表,不影响副本 copy_items
- 所以 copy_items[0] 仍然是 'A'

因此,输出结果是 'A',对应选项 A。

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-20 11:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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