簡體   English   中英

如何簡化 2 for 循環以獲得 dict object 值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM