正如我已经提到的my_dict=[dict()]*2创建对同一对象的引用,所以my_dict[0] is my_dict[1]。你知道吗
n [2]: my_dict = [dict()] * 2
In [3]: id(my_dict[0])
Out[3]: 140220584402056
In [4]: id(my_dict[1]) # same id, same object
Out[4]: 140220584402056
In [5]: my_dict=[{} for _ in range(2)]
In [6]: id(my_dict[0])
Out[6]: 140220898678728
In [7]: id(my_dict[1]) # different id, different object
Out[7]: 140220579542088
你最好这样做: my_dict[0]={'姓名':'泰米尔语'}
这只更新字典中的第一个元素。另一个将是空的。你知道吗
编辑**
上面的答案涉及一件我不知道的重要事情。所以肯定是更好的答案。我给了这个,因为它似乎解决了你的问题:
如果要创建两个引用到同一个对象而不是两个不同的对象,请使用range实际创建
n
个不同的dict:正如我已经提到的
my_dict=[dict()]*2
创建对同一对象的引用,所以my_dict[0] is my_dict[1]
。你知道吗相关问题 更多 >
编程相关推荐