Python字典:是否可以删除项目

时间:2021-05-09 18:15:42

标签: python dictionary

我想删除字典中的第一个条目,使其保持一定的大小并且不会变得太大。我正在循环电压读数,将其存储在字典中,然后通过机器学习模型运行它以进行预测。如何删除字典中最旧的(第一个)条目以保持模型大小相同。

thisdict = {}

while True:
   dictionary_power_readings[time.time()] = Power
   if len(dictionary_power_readings) > 400 : 
      dictionary_power_readings.popitem()
      #run machine learning model on dictionary_power_readings

3 个答案:

答案 0 :(得分:2)

使用 deque 中的 collections

import collections

dq = collections.deque(maxlen=400)

while True:
    dq.append((time.time(), Power))

示例:

import random

for i in range(500):
    dq.append((i, random.randint(0, 50)))
>>> len(dq)
400

>>> dq[0]
(100, 8)

>>> dq[-1]
(499, 30)

答案 1 :(得分:1)

Python 3.6+ 默认维护 dcitionary 插入顺序,因此您可以执行以下操作:

if len(dictionary_power_readings) > 400 : 
    del dictionary_power_readings[list(dictionary_power_readings.keys())[0]]

答案 2 :(得分:0)

字典有返回所有键的方法 keys(),所以你会得到第一个这样的:

keys = list(dictionary.keys())

dictionary.pop(keys[0])

我正在使用我的手机,所以我无法尝试验证它是否有效,但我希望可以帮助您。

相关问题