1
說我有類型的字典列表:一鍵添加到字典,如果不存在,然後重命名該鍵
ls = [{'id': 1, 'a1': 2, 'a2': 3}, {'id':2, 'a2':4}, {'id':3, 'a2':5}]
其中a1
不會在某些類型的字典存在
我想設置a1
在a1
丟失的這些字典中爲0,並在所有字符中將密鑰名稱a1
更改爲b1
。這裏是我想出
for l in ls:
l.setdefault('a1', 0)
l['b1'] = l.pop('a1')
我不知道該代碼有可能使之更有效率,因爲我需要運行這段代碼數百萬次。任何改進將不勝感激。
你爲什麼不直接使用代碼:'l.setdefault ('b1',l.pop('a1')if'a1'in l else 0)' –
在我的舊筆記本上,在包含一百萬字典的列表上運行代碼只需要半秒。如果你的代碼做了其他任何事情,看起來它不太可能成爲瓶頸。尋找更優雅的代碼可以很有趣,但我不會擔心這種規模的效率。 – DSM
@DSM,我會在只有1cpu和0.5G RAM的VPS上運行它。每個列表將有數百個高達10k的字典,並且我有數千萬個這樣的列表要運行。說我有10米的名單,不知何故我可以節省0.01秒,這將爲我節省27.78小時。所以任何改進都可能很重要。 – Harrison