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.
(les étoiles servent juste de séparateur dans mon exemple).ID **** numéros
1 **** 420
2 **** 4
3 **** 478
4 **** 4407
5 **** 13
6 **** 8701
7 **** 72237
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 :
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.
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...
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 :
Mercià vous, si ce n'est pas clair n'hésitez pas à me poser des questions
Code : Sélectionner tout - Visualiser dans une fenêtre à part di = {ID:{'soustraction1'="ID1",'soustraction2'=ID1}}...
Partager