Bonjour, j'ai écrit un petit programme qui:
1- insere un élément d'une liste (sim) dans une autre liste (k_nn).
2- l'élément inséré est une liste, par exemple l'élément
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 k_nn = [[999,'X'], [999,'X'], [999,'X'], [999,'X'], [999,'X'], [999,'X'], [999,'X']] sim = [[2,'B'], [9,'F'], [3,'C'], [130, 'J'], [40,'I'], [23,'G'], [1, 'A'], [3,'C'], [8,'E'], [3,'C'], [25,'H'], [6,'D']]
3- l'insertion par ordre de plus grand (tri):
Code : Sélectionner tout - Visualiser dans une fenêtre à part sim[1] = [9,'F']
le output doit être celà
Voilà mon programme:
Code : Sélectionner tout - Visualiser dans une fenêtre à part [[1, 'A'], [2, 'B'], [3, 'C'], [3, 'C'], [3, 'C'], [6, 'D'], [8, 'E']]
L'erreur :
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 k_nn = [[999,'X'], [999,'X'], [999,'X'], [999,'X'], [999,'X'], [999,'X'], [999,'X']] sim = [[2,'B'], [9,'F'], [3,'C'], [130, 'J'], [40,'I'], [23,'G'], [1, 'A'], [3,'C'], [8,'E'], [3,'C'], [25,'H'], [6,'D']] def add_s(boolean, s): i = 0 while boolean == False: if s[0] < k_nn[i][0]: k_nn.insert(i, s) del k_nn[7:] boolean = True else: i += 1 boolean = False maxi = len(k_nn) for s in sim: if s[0] < k_nn[maxi-1]: add_s (boolean, s) print k_nn
Traceback (most recent call last):
File "C:\Users\....\Desktop\.....\test_1.py", line 25, in <module>
add_s (boolean, s)
File "C:\Users\....\Desktop\......\test_1.py", line 14, in add_s
if s[0] < k_nn[i][0]:
IndexError: list index out of range
[Finished in 0.2s with exit code 1]
Partager