从字典中获取键值

时间:2016-10-11 16:55:25

标签: python dictionary

我有一个字典,索引作为键,时间戳作为值。我想获得其值有重叠的键。

例如:

{1: 19-13-30
    19-13-32
    19-13-33
    .
    .
    19-13-55,
 2: 19-13-25
    19-13-26
    19-13-27
    .
    .
    19-13-35,
  3:19-13-10
    19-13-31
    .
    .
    19-13-18}

对于上述字典值1和2重叠(19-13-30至19-13-35)。所以,我想在有重叠时返回密钥。在这种情况下1& 2

为了计算重叠,我在迭代值并将开始时间和结束时间存储在[starttime,endtime]等列表中。然后我通过

检查重叠
   overlapping = [ [x,y] for x in intervals for y in intervals if x is not y and x[1]>y[0] and x[0]<y[0] ]
for x in overlapping:
    print '{0} overlaps with {1}'.format(x[0],x[1])

这会打印重叠的值。但我想要的是值重叠的键。

2 个答案:

答案 0 :(得分:0)

为了与您的代码保持一致,这应该是一个最小的修改:

H1

答案 1 :(得分:0)

您可以迭代值(即区间列表中的位置),而不是迭代间隔。像

这样的东西
keys = range(len(intervals))
overlapping = [ [x,y] for x in keys for y in keys if x is not y and intervals[x][1]>intervals[y][0] and intervals[x][0]<intervals[y][0] ]