Bonjour à tous,

voici actuellement un exemple de ce qu'est sencé faire le script sur lequel je travail. Je dispose d'un fichier contenant 2 colonnes : des IDs et et des chiffres qui leurs sont associés.

ID **** numéros

1 **** 420
2 **** 4
3 **** 478
4 **** 4407
5 **** 13
6 **** 8701
7 **** 72237
(les étoiles servent juste de séparateur dans mon exemple).

Mon but est de récupérer toutes les combinaisons d'IDs pour lesquels la différence de leur
nombres associés ne dépasse pas un certain seuil (mettons 10 pour l'exemple). Dans cet exemple on récupérerait 2 et 5 car 13 - 4 = 9 ou 4 - 13 = -9.

J'ai donc conçu un code me permettant de récupérer dans une liste toutes les différences qui m'intéressaient, cependant je n'ai plus accès à la première colonne (correspondant aux IDs, et je n'arrive pas à remonter jusqu'à ces derniers). J'ai pensé à utiliser des dictionnaires imbriqués mais je ne trouve pas de solution efficace.

Voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
fichier = open("mo,n_fichier.txt","rb")
 
liste = []
 
for ligne in fichier.readlines():
 
	col = ligne.split('	')    #lecture du fichier / découpage
	liste.append(col[3])   # liste contient l'ensemble des nombres
 
k = []
for c in liste:
	for i in liste:			#k contient l'ensemble des soustractions possibles
		k.append(int(i)-int((c)))
 
filtre = []
 
for t in k:
	if ((t<15) and (t> -15)):	#filtre contient l'ensemble des résultats qui satisfassent la condition
		filtre.append(t)
 
 
compteur = 0
for h in filtre:			#Elimination des 0 correspondant à la soustraction d'un ID par lui même
	if h!=0:
		compteur = compteur + 1 
print compteur				 #comptage des données qui satisfassent ma condition...
Au final j'obtiens donc une liste contenant les valeurs qui m’intéressent, mais j'aimerai pouvoir remonter aux IDs qui ont été utilisé pour réaliser cette soustraction.

Est'il possible d'y parvenir en utilisant les listes ?

J'avais pensé à l'utilisation de dictionnaires imbriqués mais je me suis toujours limité à des cas "simples" d'utilisation de dictionnaires, je suis donc un peu perplexe quant à l'utilisation de cette méthode, j'avais pensé à quelque chose comme ça :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
di = {ID:{'soustraction1'="ID1",'soustraction2'=ID1}}...
Mercià vous, si ce n'est pas clair n'hésitez pas à me poser des questions