是否有办法使这两个循环更简单、更快、更简洁,例如列表理解、o(n)等。
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
发布于 2022-01-28 16:58:07
试试这个:
result = [i for key in a['res'] for i in key['ins']]
发布于 2022-01-28 17:05:50
尝试:
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()
产出:
[{'name': 'aa', 'id': 123}, {'name': 'cc', 'id': 456}]
编辑:
您还可以尝试一个更快的选项:
# 372 ns ± 11.9 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
sum([z["ins"] for z in a["res"]],[])
https://stackoverflow.com/questions/70897338
复制相似问题