|
|
发表于 2026-3-23 15:45:05
|
显示全部楼层
正确答案是 B. [[] for i in range(5)]。
详细解释:
A 和 C 的问题是它们创建的是对 同一个空列表的引用,修改其中任何一个子列表,其他所有子列表都会跟着改变,这通常不是想要的效果。
选项 D 语法错误,.extend() 方法返回 None,不会生成新列表,因此无法创建出包含5个空列表的列表。
只有选项 B 使用列表推导式,在循环中 每次都会创建一个新的空列表,这5个子列表是完全独立的对象,互不影响,所以最安全、最符合预期。
- # 错误示例:A 和 C 的方法
- list_a = [[]] * 5
- print("初始A:", list_a) # [[], [], [], [], []]
- list_a[0].append(1)
- print("修改后A:", list_a) # [[1], [1], [1], [1], [1]] 所有子列表都被改变
- # 正确示例:B 的方法
- list_b = [[] for i in range(5)]
- print("初始B:", list_b) # [[], [], [], [], []]
- list_b[0].append(1)
- print("修改后B:", list_b) # [[1], [], [], [], []] 只有第一个子列表被改变
- # 错误示例:D 的方法
- list_d = [].extend([[] * 5])
- print("D的结果:", list_d) # 输出 None,不是我们想要的列表
复制代码
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|