list - 字典更新覆盖重复键
问题描述
我有一张表,其中有 6982 条记录,我正在阅读这些记录以制作字典。我使用文字来创建字典
fld_zone_dict = dict()
fields = ['uniqueid', 'FLD_ZONE', 'FLD_ZONE_1']
...
for row in cursor:
uid = row[0]
old_zone_value = row[1]
new_zone_value = row[2]
fld_zone_dict[uid] = [old_zone_value, new_zone_value]
但是,我注意到使用此方法时,如果 uid 具有与以前相同的值uid
(理论上可能存在重复),则该条目将被覆盖。因此,如果我有 2 个要添加的条目:'CA10376036': ['AE', 'X']
并且'CA10376036': ['V', 'D']
,第一个被覆盖,我只得到 'CA10376036': ['V', 'D']
. 如何在不覆盖重复键的情况下添加到我的字典中,以便得到类似的东西?
fld_zone_dict = {'CA10376036': ['AE', 'X'], 'CA9194089':['D', 'X'],'CA10376036': ['V', 'D']....}
解决方案
简短的回答:没有办法在 Python 中的字典对象中有重复的键。
但是,如果您要重组数据并获取该键并将其放入嵌套在列表中的字典中,则可能会有重复的 ID。前任:
[
{
"id": "CA10376036",
"data: ['AE', 'X']
},
{
"id": "CA10376036",
"data: ['V', 'D']
},
]
但是,这样做会否定查找速度和易用性的任何好处。
编辑:blhsing 也有一个很好的例子,说明如何通过减少初始查找时间来重组数据,尽管您仍然需要遍历数据以获得所需的记录。
推荐阅读
- javascript - React 中的 setState 在这种情况下如何工作?
- python - 如何在 matplotlib 的不同子图中重复一个图?
- python - 如何使用脚本裁剪 GIF?
- python - 为什么 pygame.MOUSEBUTTONDOWN 永远不会等于我的按钮,即使用户点击它?
- gcc - 如何使用 musl-gcc 编译 GTK+ 基础应用程序?
- javascript - 我怎样才能使这个js代码输出到小数点后一位?如何在我的特定情况下实施?
- c++ - 非原子时,C++ 成员更新关键部分内的可见性
- javascript - 在对象的 json 数组中找到一个键值并返回另一个带有角度的键值
- html - 固定顶部导航不覆盖页面内容
- tableau-api - 在 Tableau 中多次拆分联接条件(数据源或工作表)