首页 > 解决方案 > dict上的对(Python)

问题描述

我有一个带有 id 和随机生成年龄的字典。例如(年龄随机):

json = {0: {'age': 14},
        1: {'age': 23},
        2: {'age': 43},
        3: {'age': 29}

我有一个范围。例如 [5;20]。我想像这样遍历数组:

0->1, 0->2, 0->3   #FIX
1->2, 1->3
2->3

我想检查它是否符合条件5 < abs(n-m) < 20

1)。0 与 1:

if 5 < abs(json[0]['age']-json[1]['age']) < 20:
    pass

2)。0 与 2:

if 5 < abs(json[0]['age']-json[2]['age']) < 20:
    pass

n)。n 与 m:

if 5 < abs(json[n]['age']-json[m]['age']) < 20:
    pass

所以它们都应该在彼此的范围内。事实上,有几个范围,但我认为一个就足够了。我真的不明白如何在 Python 中实现这一点,请帮忙。也许它有帮助:

不要严格判断图像

在此处输入图像描述

标签: pythonenumeration

解决方案


代码方法应如下所示:

def checkRange(bottom, top, data):
  lastkey=list(data.keys())[-1]
  for key in data.keys():
    for x in range(key+1, lastkey+1):
      if bottom<abs(data[key]['age']-data[x]['age']) < top:
        pass
      else: 
        print(key, x)

data = {0: {'age': 14},
    1: {'age': 23},
    2: {'age': 43},
    3: {'age': 29}}

checkRange(5,20,data)

而不是打印或传递,您可以选择做什么!


推荐阅读