gpt4 book ai didi

python - 查找数组中具有重复键值的 dict 对象

转载 作者:行者123 更新时间:2023-11-30 23:01:06 25 4
gpt4 key购买 nike

我有一个包含 dict 对象的列表,一个 dict 代表我的 MySQL 数据库中的一条记录。所以我想找到 title 键值重复的每个字典,然后更新重复的项目。

所以我有这样的东西:

dict1 = {"id":1234,"title":"apple"}
dict2 = {"id":1235,"title":"orange"}
dict3 = {"id":1236,"title":"apple"}
dict4 = {"id":1237,"title":"kiwi"}

results = [dict1,dict2,dict3,dict4]

我想最终得到这样的结果:

dict1 = {"id":1234,"title":"apple"}
dict2 = {"id":1235,"title":"orange"}
dict3 = {"id":1236,"title":"apple 2"}
dict4 = {"id":1237,"title":"kiwi"}

这是我的尝试,但行不通。当我运行它时, if 语句永远不会为真。 (注意:我正在使用 peewee 并且从数据库获取基本数组,因此我正在访问像这样的值 obj.title,但我假设这些对象可以作为简单的字典)

objects = mydb.select().where(mydb.title.contains("usa"))

objectsB = objects

for obj in objects:
for obj2 in objectsB:
if obj.title is obj2.title and obj.objectId is not obj2.objectId:
obj2.title = "%s Duplicate" % (obj.title,)
print(obj2.title)

如您所见,我有另一个键,objectId,它始终不同,因此可用于在 for 循环期间查找重复条目。然而,我无法找出正确的方法来做到这一点,因此,如果有人能告诉我我做错了什么,我将非常感激。

最佳答案

为什么不直接使用 Peewee ORM + SQL 来为您完成这项工作?

query = (Fruit
.select(Fruit.title, fn.COUNT(Fruit.id))
.group_by(Fruit.title)
.having(fn.COUNT(Fruid.id) > 1))

然后您将得到一个仅包含水果的列表,其中有多个具有相同标题的水果。

关于python - 查找数组中具有重复键值的 dict 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35025751/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com