小甲鱼 发表于 2025-10-26 02:52:37

已有 2 人购买  本主题需向作者支付 5 鱼币 才能浏览 购买主题

寒虫 发表于 4 天前

@FishC 以下关于列表推导式生成结果的说法,哪一项是正确的?
A. 会在原列表上原地修改元素
B. 始终返回一个新列表对象
C. 只能返回生成器对象
D. 必须与原列表长度保持一致

FishC 发表于 4 天前

寒虫 发表于 2025-12-08 21:04
@FishC 以下关于列表推导式生成结果的说法,哪一项是 ...

正确答案是 B。

详细解析:


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


代码示例:

# 原列表
original_list =

# 列表推导式:生成新列表,元素为原列表每个元素的平方
new_list =

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

# 示例D错误:列表推导式可以改变长度
filtered_list =
print("过滤后的列表(长度变化):", filtered_list)


以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 第024讲:列表(VI)