首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何替换对象并将其添加到列表python

如何替换对象并将其添加到列表python
EN

Stack Overflow用户
提问于 2020-11-23 04:40:50
回答 1查看 47关注 0票数 0
代码语言:javascript
复制
return_so = [{'id': 1, 'has_hub': False}, {'id': 2, 'has_hub': False}, {'id': 3, 'has_hub': False}]

hub_so = [{'id': 1, 'has_hub': True}, {'id': 62, 'has_hub': True}, {'id': 13, 'has_hub': True}, {'id': 2, 'has_hub': True}]

嗨,我想要合并2数组,当有一个由"id“复制的dict时,我想选择has_hub = True的dict。

代码语言:javascript
复制
expected result = [{'id': 1, 'has_hub': True}, {'id': 2, 'has_hub': True}, {'id': 3, 'has_hub': False}, {'id': 62, 'has_hub': True}, {'id': 13, 'has_hub': True}]

谢谢..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-23 04:47:34

解决这个问题的方法有很多种,但是利用python中的字典现在保持插入顺序(3.7实现细节,3.8标准),您可以这样做:

  1. 填充字典,如果发现冲突,则使用id作为键
  2. ,然后只有当has_hub是真
  3. 时,才会将dict转换回list

下面是:

代码语言:javascript
复制
d = {}  #create dict

for item in return_so + hub_so:
  if item['id'] not in d or item['has_hub']:
    d[item['id']] = item

expected_result = list(d.values())
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64962640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档