Bonjour à tous,

Pour commencer, je suis sur python2.7 et Windows 10. Je précise ne pas être un expert en python, mais je trouve cet outil vraiment passionnant.
J'ai donc un fichier texte qui se présente comme ceci:

1 2 1 3 2 3 4 2 4 5 2 5 3 2 3 4 2 4 6 7 6 8 7 8 5 2 5 8 2 8 5 7 5 4 7 4 2 6 2 8 6 8 7 5 7 8 5 8 7 3 7 4 3 4 1 6 1 2 6 2 3 6 3 1 6 1 3 7 3 6 7 6

Mon but est de savoir si il y a des doublons normal ou inversés dans cette suite en regroupant les nombres deux par deux. Je m'explique, en prenant les 7 premiers termes regroupés par exemple, on a 12, 13, 23, 42, 45, 25 et 32, or, pour moi, 23 est identique à 32, je souhaiterai donc supprimer le terme 32.

J'ai codé ceci :
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
28
29
30
31
32
33
34
35
36
#!/usr/bin/python
# -*- coding: iso-8859-1 -*-
 
contenu = open("E:\Desktop\ScriptPython\Reducemesh\POBJ\Granulat1-8.txt", "r").read()
contenu = contenu.split("z")
 
fichier = open('E:\Desktop\ScriptPython\Reducemesh\POBJ\Granulat1-9.txt', 'w')
 
# 71 contenu en tout
k=0
for j in range (0, 68-k): # contenu 70 et 71 auront deja ete verifie en fin de chaine
        for i in range (2, 70-k-j): #permet de reduire l'intervalle en fonction que 'j' grandit
                if contenu[j]+contenu[j+1] == contenu[j+i]+contenu[j+(i+1)]:
                        del contenu[j+i]
                        del contenu[j+i]
                        k=k+2 #reduit l'intervalle a chaque contenu supprime
 
                elif contenu[j+1]+contenu[j] == contenu[j+i]+contenu[j+(i+1)]:
                        del contenu[j+i]
                        del contenu[j+i]
                        k=k+2
 
                elif contenu[j]+contenu[j+1] == contenu[j+(i+1)]+contenu[j+i]:
                        del contenu[j+i]
                        del contenu[j+i]
                        k=k+2
 
                elif contenu[j+1]+contenu[j] == contenu[j+(i+1)]+contenu[j+i]:
                        del contenu[j+i]
                        del contenu[j+i]
                        k=k+2
 
        i=i+2
j=j+2
 
print contenu
J'ai donc évidement l'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
"if contenu[j]+contenu[j+1] == contenu[j+i]+contenu[j+(i+1)]:
IndexError: list index out of range"
Pour le coup je suis un peu bloqué, en plus, je me suis lancé dans quelque-chose d'assez complexe en traitant chaque nombre comme un contenu.
Quelqu'un aurait-il une idée?

Merci par avance.

Ben