如何从python字典中获取最小和最大纪元时间?

时间:2016-07-25 12:45:45

标签: python dictionary max min epoch

我有一个python字典。在这本词典中,我将价值保存为纪元时代。我想知道哪个是最大纪元时间,哪个是最小纪元时间。此外,我想将这些纪元时间分成不同的时段。

程序编码 -

for key,value in self.key_dict.iteritems():
        print 'key : ' + str(key) + ' value : ' + str(value)

输出 -

key : 1 value : 1468332422164000
key : 2 value : 1468332421672000
key : 3 value : 1468332423489000
key : 4 value : 1468332423568000
key : 5 value : 1468332421383000
key : 6 value : 1468332421818000
key : 7 value : 1468332423490000
key : 8 value : 1468332421195000
key : 9 value : 1468332421098000

进一步划分为不同的时段 -

这意味着我只想用这个时间绘制x轴。为此,我找到了最小和最大时间。取决于最小和最大时隙之间的差异,我希望将其分成最多3或4个时隙。示例 - 1468332421098000至1468332423490000。

这些是作为字典值的纪元时代。如何从中找到最大值和最小值并进一步划分为不同的时隙以绘制图形的x轴?

3 个答案:

答案 0 :(得分:0)

可以使用min()上的函数max()dict.values()来确定最大值和最小值,它会返回字典值的列表:

minimum = min(self.key_dict.values())
maximum = max(self.key_dict.values())

答案 1 :(得分:0)

如果您想同时返回键和值,请使用minmax函数以及key kwarg:

key_dict = {'a': 1, 'b': 2}

print min(key_dict.iteritems(), key=lambda item: item[1])
# ('a', 1)
print max(key_dict.iteritems(), key=lambda item: item[1])
# ('b', 2)

答案 2 :(得分:0)

如果您有numpy的访问权限,则可以使用它来帮助您填充数据。首先,让我们计算我们的值的最小值和最大值。

mn = min(self.key_dict.values())
mx = max(self.key_dict.values())

现在创建一些用于绘图的箱子,将它们平分:

# five equally spaced points delimiting four bins
bins = numpy.linspace(mn, mx, num=5)

现在找到每个值所在的bin:

values = numpy.array(list(self.key_dict.values())
bin_numbers = numpy.digitize(values, bins)

您想从中绘制的内容从您的问题中不清楚。您可能希望将bin_numbers与您的字典键进行对比...如果您希望绘制直方图,那么使用numpy.histogram而不是numpy.digitize会更容易。