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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
| import string
chaine = "(5, A, 8), (3, B, 4)" # chaine initiale
values = [] # liste des valeurs de depart
liste = [] # liste temporaire
listLetters = []
chaines = chaine.split("), (")
chaines[0] = chaines[0].strip('(')
chaines[-1] = chaines[-1].strip(')')
print chaines
#['5, A, 8', '3, B, 4']
for chaine in chaines:
for car in chaine:
if car in string.digits:
liste.append('%s')
values.append(car)
else:
liste.append(car)
if str(car).isalpha():
listLetters.append(car)
liste.append(', ')
chaine = "".join(liste)
chaine.strip(", ")
print chaine
# %s, A, %s, %s, B, %s,
print "listLetters=", listLetters
#['A', 'B']
# exemple d'utilisation
listAll = []
listNewNb = []
for nb in values:
listNewNb.append(int(nb) -1)
listNewNb.append(int(nb))
listNewNb.append(int(nb) +1)
listAll.append(listNewNb)
listNewNb = []
print "listAll=", listAll
#listAll= [[4, 5, 6], [7, 8, 9], [2, 3, 4], [3, 4, 5]]
chaineFormatee = "(%s, %s, %s)"
firstFlag = True
firstSet = []
indLetter = 0
compteLetter = 0
for idx,listNewNb in enumerate(listAll):
if not firstFlag:
for nb in firstSet:
print chaineFormatee % tuple([nb, listLetters[indLetter],listNewNb[0]])
print chaineFormatee % tuple([nb, listLetters[indLetter],listNewNb[1]])
print chaineFormatee % tuple([nb, listLetters[indLetter],listNewNb[2]])
compteLetter = compteLetter +1
if compteLetter == 3:
indLetter = indLetter+1
compteLetter = 0
firstFlag = True
firstSet = []
else:
firstSet = listNewNb
firstFlag = False |
Partager