[英]How can I simplify 2 for loops to get a dict object value?
有沒有辦法讓這兩個循環更簡單、更快、更干凈,比如List Comprehension,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
嘗試這個:
result = [i for key in a['res'] for i in key['ins']]
嘗試:
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"]],[])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.