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