1.result = [[]] * n 和 result = [[] for _ in range(n)] 辨析
n = 3
result = [[]] * nprint(result)
# 输出:[[],
# [],
# []]print(result[0] is result[1] is result[2])
# 输出:True
*
运算符进行复制,这些空列表实际上是指向同一个内存地址的,它们是共享的。
n = 3
result = [[] for _ in range(n)]print(result)
# 输出:[[],
# [],
# []]print(result[0] is result[1] is result[2])
# 输出:False
使用列表生成式,我们创建了 n
个独立的空列表,它们在内存中具有不同的地址,对其中一个列表的修改不会影响到其他列表。