gpt4 book ai didi

python - 为什么 [[]]*10 是在 python 中创建 10 个空列表的列表而不是 [[]*10] 的方法?

转载 作者:行者123 更新时间:2023-12-04 01:08:49 25 4
gpt4 key购买 nike

为什么 [[]]*10 会生成一个包含十个空列表的列表? [[]*10] 对我来说更有意义。

最佳答案

我认为对您来说最好的解释可能是查看 [1, 2] * 4,它给您 [1, 2, 1, 2, 1, 2, 1 , 2]。与左侧列表相乘会复制列表的元素,而不是列表本身。

[] * 10 复制 10 个 no 元素并给你 []

[[]] * 10 为您提供十份 [],这正是您要找的。


@blckknght 指出,值得强调的是,* 重复列表的元素,但元素本身不会被复制。

>>> X = [1, 2, 3, 4, 5]
>>> Y = [X] * 2
>>> Y
[[1, 2, 3, 4, 5], [1, 2, 3, 4, 5]]

Y 现在包含 X 本身两次,而不是 X 的两个副本。

>>> Y[0] is X
True
>>> X[0] = 'a'
>>> Y
[['a', 2, 3, 4, 5], ['a', 2, 3, 4, 5]]
>>>

关于python - 为什么 [[]]*10 是在 python 中创建 10 个空列表的列表而不是 [[]*10] 的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65473101/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com