从lis中删除词典的副本

2024-10-01 22:39:39 发布

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

如何删除“name”键的重复项

[  
   {  
      'items':[  
         {  
            '$oid':'5a192d0590866ecc5c1f1683'
         }
      ],
      'image':'image12',
      '_id':{  
         '$oid':'5a106f7490866e25ddf70cef'
      },
      'name':'Amala',
      'store':{  
         '$oid':'5a0a10ad90866e5abae59470'
      }
   },
   {  
      'items':[  
         {  
            '$oid':'5a192d2890866ecc5c1f1684'
         }
      ],
      'image':'fourth shit',
      '_id':{  
         '$oid':'5a106fa190866e25ddf70cf0'
      },
      'name':'Amala',
      'store':{  
         '$oid':'5a0a10ad90866e5abae59470'
      }
   }
]

我想用同一个键“name”把字典拼在一起

这是我尝试过的

^{pr2}$

但是在尝试之后,b列表并没有返回我想要的唯一字典


Tags: storenameimageid列表字典itemsoid
1条回答
网友
1楼 · 发布于 2024-10-01 22:39:39

你在集合的列表中循环,如果你找到一个不同名称的dict,你就添加当前dict。逻辑应该是不同的:只有当你没有找到同名的dict时才添加它!在

也就是说,你应该保留一组可见的名字。这将使检查更有效:

b, seen = [], set()

for q in data:
    if q['name'] not in seen:
        b.append(q)
        seen.add(q['name'])

相关问题 更多 >

    热门问题