鱼C论坛

 找回密码
 立即注册
查看: 173|回复: 2

[快问快答] 第024讲:列表(VI)

[复制链接]
发表于 2025-10-26 02:52:37 | 显示全部楼层 |阅读模式
购买主题 已有 2 人购买  本主题需向作者支付 5 鱼币 才能浏览
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 4 天前 | 显示全部楼层
@FishC 以下关于列表推导式生成结果的说法,哪一项是正确的?
A. 会在原列表上原地修改元素
B. 始终返回一个新列表对象
C. 只能返回生成器对象
D. 必须与原列表长度保持一致
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 4 天前 | 显示全部楼层
寒虫 发表于 2025-12-08 21:04
@FishC 以下关于列表推导式生成结果的说法,哪一项是 ...


正确答案是 B。

详细解析:

  • A 错误:列表推导式不会修改原列表,而是会创建一个全新的列表。
  • [b]B 正确:列表推导式(使用方括号 [ ] )的最终结果总是返回一个新的列表对象。
  • C 错误:列表推导式返回的是列表,而不是生成器对象。使用圆括号 ( ) 的才是生成器表达式。
  • D 错误:列表推导式允许使用 if 条件进行过滤,因此新列表的长度可以和原列表(如果有原列表的话)不同。


代码示例:

  1. # 原列表
  2. original_list = [1, 2, 3, 4, 5]

  3. # 列表推导式:生成新列表,元素为原列表每个元素的平方
  4. new_list = [x ** 2 for x in original_list]

  5. print("原列表:", original_list, ", id为:", id(original_list))
  6. print("新列表:", new_list, ", id为:", id(new_list))
  7. # 两个列表的内容和内存地址都不同

  8. # 示例D错误:列表推导式可以改变长度
  9. filtered_list = [x for x in original_list if x % 2 == 0]
  10. print("过滤后的列表(长度变化):", filtered_list)
复制代码


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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-12 11:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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