簡體   English   中英

優化雙枚舉循環

[英]Optimize double enumerate loops

我想優化這段代碼:

for MajorKey,v in enumerate(data):
    for MinorKey,e in enumerate(v['events']):
        if e['displayed'] == False:
            del data[MajorKey]['events'][MinorKey]

結構:

data : [{ //details,
         "events" :[ { //more details,
                      "displayed" : True},
                      { //more details,
                      "displayed" : False}
                   ]
       },
       { //...
       }]

data是一個列表。 數據中的每個對象都有一個'events'數組。 在那些對象中,我想刪除那些有display == false

不要枚舉,也不要刪除( 特別是如果你正在迭代你要刪除的序列)。 切片 - 改為分配列表理解。

for v in data.itervalues():
  v['events'][:] = [e for e in v['events'] if e['displayed']]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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