-1
votes

IndexError: Index de liste hors de portée - Parfois, il fonctionne et parfois, il n'est pas

J'ai une situation que je ne suis pas sûr de savoir comment résoudre. Parfois, lorsque j'exécute le programme, il fonctionne parfaitement et parfois, il dit

hashtag_list = ['urban', 'hipster', 'retro']
for hashtag in hashtag_list:
    tag = randint(1,3)
    driver.get('https://www.instagram.com/explore/tags/' + hashtag_list[tag] + '/')
    sleep(5)


2 commentaires

Liste Indices Début de 0 en Python


Les index commencent par 0, essayez avec randint (0,2)


3 Réponses :


0
votes

La liste Python est mise à zéroxée. Cela signifie que le premier index d'une liste commence à partir de 0 . Donc, les index de HASTAG_LIST sont 0, 1, 2 . Cependant, randint (1,3) est inclusif, donc tag sera parfois attribué au hasard (code> 3 .

Il devrait commencer à devenir claire quel est le problème. Depuis l'indice maximal de hashtag_list est 2 et tag est parfois 3 , alors parfois vous indexerez < Code> hashtag_list hors de portée.

La solution simple serait d'utiliser randint (0, 2) plutôt que randint (1, 3) . Cependant, une solution plus propre serait d'utiliser aléatoire.choice < / code> Pour choisir une option aléatoire à partir de hashtag_list : xxx


0 commentaires

0
votes

Randint (A, B) produit un entier aléatoire dans la plage [A, B] inclusif, parfois quand il ne fonctionne pas, il ne fonctionne pas, il produise 3 et 3 est au-delà de la liste. Changez-le à Randint (0, 2) , car dans Python (et dans de nombreuses autres langues), une liste avec les indices N des éléments Démarrer depuis 0 et mettre fin au n - 1 . Ainsi: xxx


0 commentaires

0
votes

changer Tag = Randint (1,3) à Tag = Randint (0,2)


0 commentaires