Bonjour, je suis en train d'apprendre à me servir de Python.
Pour celà je fais des exercices.
J'ai trouvé le site de Pascal Ortiz qui propose dans la rubrique "boucles imbriquées" un exercice que je pense avoir résolu après avoir beaucoup cherché et créé une "usine à gaz".
Persuadé qu'il y a une solution plus simple je propose ce que j'ai fait et demande si quelqu'un pourrait m'indiquer une méthode plus simple.
voila le résultat de mes efforts

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
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
70
71
 
''' exercice relevé sur le site de Pascal Ortiz dans le chapitre "boucles imbriquées
il s'agit de donner l'écart d'index maximal entre les valeurs identiques d'une liste
donnée  ici la liste l '''
 
l = [16, 14, 17, 13, 15, 14, 16, 15, 13, 14, 16, 15, 13, 16]
 
#constituer une liste de doublets nommée mix-valeur/indice dans la liste""""""
mix=[]
for x,y in enumerate(l):
    mix.append([y,x])
    mix = sorted(mix, key=lambda x:x[0])
 
print("mix",mix)
 
# constituer une liste sans doublons nommée lsd et l'ordonner
lsd=[]
 
for i in range(len(l)):
    if l[i] not in lsd:
        lsd.append(l[i])
lsd = sorted(lsd)
print("lsd",lsd)
 
 
#constituer une liste des occurrences des valeurs de la liste
#lsd=[16, 14, 17, 13, 15]
occur=[]       
for i in range(len(lsd)):
    occur.append(l.count(lsd[i]))
 
print("occurrences",occur)
 
#fusionner les deux liste lsd et loccur (nombre, nbre occurrences)
a=1
 
 
for i in range(len(lsd)):
 
    b=occur[i]
    lsd[a:a]=[b]  
    a +=2
 
print("lsd fusion ",lsd)
 
 
#calculer les écarts d'index pour chaque valeur
 
index=(len(lsd)/2)
index=int(index)
l_tempo = []
 
for j in range(index):
 
 
    val1=lsd[0]
    val2=lsd[1]
 
 
    for i in range(occur[0]):
        l_tempo.append(mix[0][1])
        del mix[0]
 
 
    print(val1,"écart  => ",l_tempo[-1]-l_tempo[0])
    l_tempo=[] 
 
    del lsd[0]
 
    del lsd[0]
    del occur[0]
merci pour vos conseils