首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何简化2 for循环以获得dict对象值?

如何简化2 for循环以获得dict对象值?
EN

Stack Overflow用户
提问于 2022-01-28 16:54:39
回答 2查看 60关注 0票数 0

是否有办法使这两个循环更简单、更快、更简洁,例如列表理解、o(n)等。

代码语言:javascript
运行
复制
def main:
  a={"res":
       [
        {"group":1,"ins":[{"name":"aa","id":123]},
        {"group":2,"ins":[{"name":"cc","id":456]}
     ]}
   result=[]
  for key in a["res"]:
     for i in key["ins"]
        result.append(i)
  return result
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-01-28 16:58:07

试试这个:

代码语言:javascript
运行
复制
result = [i for key in a['res'] for i in key['ins']]
票数 4
EN

Stack Overflow用户

发布于 2022-01-28 17:05:50

尝试:

代码语言:javascript
运行
复制
import numpy as np

# 3.21 µs ± 23.9 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)    
np.ravel([z["ins"] for z in a["res"]]).tolist()

产出:

代码语言:javascript
运行
复制
[{'name': 'aa', 'id': 123}, {'name': 'cc', 'id': 456}]

编辑:

您还可以尝试一个更快的选项:

代码语言:javascript
运行
复制
# 372 ns ± 11.9 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
sum([z["ins"] for z in a["res"]],[])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70897338

复制
相关文章

相似问题

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