Я думаю, itertools.combinations
специально для этой цели. Вы можете подробно прочитать документацию: itertools
В вашем случае вы можете позвонить по этому номеру:
import itertools as it
a=list(it.combinations(json,2))
Если вы печатаете a
, вы можете четко посмотрите комбинацию нужного вам индекса:
[(0, 1), (0, 2), (0, 3), (1, 2), (1, 3), (2, 3)] # print (a)
# what you want
0->1, 0->2, 0->3 #FIX
1->2, 1->3
2->3
Затем вычислите и выведите абсолютную разницу между двумя элементами:
for item in a:
print (abs(json[item[0]]['age']-json[item[1]]['age']) )
Вывод:
9
29
15
20
6
14
Кроме того, вы можете сократить коды и проверить диапазон:
for i in it.combinations(json,2):
v=abs(json[i[0]]['age']-json[i[1]]['age'])
if v in range(5+1,20):
pass
else:
print ('False',i,'age:',v )
Выход:
False (0, 2) age: 29
False (1, 2) age: 20