如何更新下表中的每个字典键值

2024-06-25 05:39:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在python列表中创建一个字典。你知道吗

>>> my_dict=[dict()]*2 
>>> my_dict[0]['name']='TAMIL'
>>> my_dict[0]
{'name': 'TAMIL'}
>>> my_dict
[{'name': 'TAMIL'}, {'name': 'TAMIL'}]

它用相同的值my_dict[1]['name']更新my_dict[0]['name']如何避免这种情况,在我的例子中,我想要 仅访问和更新每个字典键。你知道吗


Tags: name列表字典my情况dict例子tamil
2条回答

你最好这样做: my_dict[0]={'姓名':'泰米尔语'}

这只更新字典中的第一个元素。另一个将是空的。你知道吗

编辑**

上面的答案涉及一件我不知道的重要事情。所以肯定是更好的答案。我给了这个,因为它似乎解决了你的问题:

>>> my_dict=[dict()]*2
>>> my_dict
[{}, {}]
>>> my_dict[0]= {'name':'Tamil'}
>>> my_dict
[{'name': 'Tamil'}, {}]

如果要创建两个引用到同一个对象而不是两个不同的对象,请使用range实际创建n个不同的dict:

my_dict=[{} for _ in range(2)]

正如我已经提到的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

相关问题 更多 >