从特定索引开始在Python中的嵌套字典中进行回溯循环

从特定索引开始在Python中的嵌套字典中进行回溯循环,python,for-loop,nested,Python,For Loop,Nested,我在查字典时遇到了问题。我有一个嵌套的字典结构,名为dates{},如下所示 ('2018-08-21 00:00:00', {'price': 10, 'height': 0.2}) ('2018-08-22 00:00:00', {'price': 20, 'height': 0.3}) ('2018-08-23 00:00:00', {'price': 30, 'height': 0.4}) ..... .... .... 我需要从第20天开始循环每个日期,计算过去20天的平均价格。我该

我在查字典时遇到了问题。我有一个嵌套的字典结构,名为dates{},如下所示

('2018-08-21 00:00:00', {'price': 10, 'height': 0.2})
('2018-08-22 00:00:00', {'price': 20, 'height': 0.3})
('2018-08-23 00:00:00', {'price': 30, 'height': 0.4})
.....
....
....
我需要从第20天开始循环每个日期,计算过去20天的平均价格。我该怎么做呢?我试过这个:

for key,value in dates.items():
    n = n + 1
    if n >= 20:
    for key,value in dates.items():
        for s in range(n-20,n):
            print(value["price"])
但它无法获得价格,它会产生某种无限循环,这意味着我无法使用它


谢谢

您试图计算的是所谓的“移动平均线”。请参阅,以获取一个很好的实现集合


首先将
price
字段拉入一个单独的列表中,然后应用该线程中的一种方法来计算长度20的移动平均值。

使用列表理解非常简单

sum([item['price'] for item in dictionary.values()][:20])/20
如果要避免重复所有步骤,请执行以下操作:

total=0
for item in list(dictionary.values())[:20]:
   total+=item['price']
average=total/20