我有一個包含數千個專案的字典變數。為了撰寫代碼和除錯,我想暫時減小它的大小以便更容易使用它(即通過列印檢查內容)。我真的不在乎為此目的洗掉了哪些專案。我試圖用這段代碼只保留 10 個第一個鍵:
i = 0
for x in dict1:
if i >= 10:
dict1.pop(x)
i = 1
但我得到了錯誤:
RuntimeError: dictionary changed size during iteration
最好的方法是什么?
uj5u.com熱心網友回復:
您可以重寫字典,從其專案中選擇一個切片。
dict(list(dict1.items())[:10])
uj5u.com熱心網友回復:
首先選擇一些要洗掉的隨機鍵,然后遍歷該串列并洗掉它們。
import random
keys = random.sample(list(dict1.keys()), k=10)
for k in keys:
dict1.pop(k)
uj5u.com熱心網友回復:
您可以將字典轉換為專案串列,拆分并轉換回字典,如下所示:
splitPosition = 10
subDict = dict(list(dict1.items())[:splitPosition])
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/465122.html
上一篇:JSON到多個字典
下一篇:按權重對字典進行加權洗牌
