Je suis sûr que c'est quelque chose de très évident qui me manque, mais quelqu'un peut-il me dire pourquoi cet extrait de code continue dans une boucle sans fin?

bucket = [['Louis', 29], ['Nick', 2], ['Rochelle', 4]]

def find_index(bucket,keyword):
    index = 0
    for e in bucket:
        while e[0] <> keyword:
            index = index + 1
    return index


print find_index(bucket,'Nick')
-3
Benny Nieves 15 janv. 2017 à 21:05

2 réponses

Meilleure réponse

Et ça?
Deux boucles for pour empêcher la boucle de fonctionner à l'infini.

bucket = [['Louis', 29], ['Nick', 2], ['Rochelle', 4]]

def find_index(bucket, keyword):
    for index, subArray in enumerate(bucket):
        for element in subArray:
            if element == keyword:
                return index

print find_index(bucket, 'Nick')
1
Maurice Meyer 15 janv. 2017 à 18:40

Que diriez-vous?

bucket = [['Louis', 29], ['Nick', 2], ['Rochelle', 4]]

def find_index(bucket,keyword):
    index = 0
    for e in bucket:
        while e[index] <> keyword:
            index = index + 1
    return index


print find_index(bucket,'Nick')

Vous avez utilisé e[0] au lieu de e[index].

0
Willem Van Onsem 15 janv. 2017 à 18:07