我有一个带字典的数据库(python的tinydb)。这些词典中的每一个都包含特定纪元时间的数据:
字典1 = {'epochtime'= 1480417585,'apple'= 1.25,'melon'= 2.50}
字典2 = {'epochtime'= 1480422580,'apple'= 1.40,'melon'= 2.30}
字典3 = ...
我想比较每个时期的每个水果的价值变化:
显然我需要按时间顺序减去这些值(高纪元时间 - 低纪元时间,低纪元时间 - 甚至更低的纪元时间等)。
我确信有些蟒蛇大师可以写几行,但我现在完全被打扰了!
我正在使用Python 3,但Python 2.7的建议也非常有用。
答案 0 :(得分:0)
您的第一步是按纪录时间对参赛作品进行排序。假设他们在列表entries
中,
sorted_entries = sorted(entries, key=lambda e: e['epochtime'])
key
参数是一个函数,它将每个条目映射到一个值,该值指定集合的排序顺序。因此,sorted_entries
现在将按升序纪元时间戳包含所有条目。
要实际获得结果,您可以成对迭代:
for i in range(len(sorted_entries)-1):
first, second = sorted_entries[i], sorted_entries[i+1]
# Do whatever calcs you need
print("Apple change: {}".format(second['apple'] - first['apple']))