gpt4 book ai didi

Python - 在这种情况下如何解释将数据分配给数组

转载 作者:行者123 更新时间:2023-11-28 21:42:09 25 4
gpt4 key购买 nike

<分区>

请看下面的代码,为什么要这样做

array[0][0] = 'Tadaaaa'

改变了 5 个元素而不是一个?

首先,创建一个空数组:

x, y = 5, 3

# when you multiply it's copying, so the ids of each item is the same
array = [[set()] * y] * x
array

我会得到:

[[set(), set(), set()],
[set(), set(), set()],
[set(), set(), set()],
[set(), set(), set()],
[set(), set(), set()]]

然后给元素赋值:

array[3][2].add('BBC')
array

我会得到:

[[{'BBC'}, {'BBC'}, {'BBC'}],
[{'BBC'}, {'BBC'}, {'BBC'}],
[{'BBC'}, {'BBC'}, {'BBC'}],
[{'BBC'}, {'BBC'}, {'BBC'}],
[{'BBC'}, {'BBC'}, {'BBC'}]]

但是当我这样做的时候:

array[0][0] = 'Tadaaaa'
array

我得到:

[['Tadaaaa', {'BBC'}, {'BBC'}],
['Tadaaaa', {'BBC'}, {'BBC'}],
['Tadaaaa', {'BBC'}, {'BBC'}],
['Tadaaaa', {'BBC'}, {'BBC'}],
['Tadaaaa', {'BBC'}, {'BBC'}]]

这是怎么回事?

我以为我会得到这样的东西:

[['Tadaaaa', {'BBC'}, {'BBC'}],
[{'BBC'}, {'BBC'}, {'BBC'}],
[{'BBC'}, {'BBC'}, {'BBC'}],
[{'BBC'}, {'BBC'}, {'BBC'}],
[{'BBC'}, {'BBC'}, {'BBC'}]]

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