回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>嘿,伙计们,所以我试图用Python实现一个简单的哈希表,只是好奇为什么这不起作用,所以当我初始化map变量时,我第一次使用这个。你知道吗</p>
<pre><code>class HashMap:
def __init__(self):
self.size = 10
self.map = [[] for _ in range(10)] #What to focus on
def getHash(self, key):
return key % self.size
def add(self,key, value):
#Get hashed bucket index
bucket = self.getHash(key)
self.map[bucket].append(value)
#To test my function.
h = HashMap()
h.add(1, "Swag")
print(h.map)
</code></pre>
<p>当我这样做的时候,我的哈希映射工作得非常好,得到了想要的结果:</p>
<pre><code>[[], ['Swag'], [], [], [], [], [], [], [], []]
</code></pre>
<p>但是,当我这样做时:</p>
<pre><code>self.map = [[]] * 10 #What to focus on
</code></pre>
<p>然后我得到这个输出:</p>
<pre><code>[['Swag'], ['Swag'], ['Swag'], ['Swag'], ['Swag'], ['Swag'], ['Swag'], ['Swag'], ['Swag'], ['Swag']]
</code></pre>
<p>有人知道为什么会这样吗?我是一个Python新手所以任何东西都会很好谢谢!你知道吗</p>