CONNEXION
  • RetourJeux
    • Tests
    • Soluces
    • Previews
    • Sorties
    • Hit Parade
    • Les + attendus
    • Tous les Jeux
  • RetourActu
    • Culture Geek
    • Astuces
    • Réalité Virtuelle
    • Rétrogaming
    • Toutes les actus
  • RetourHigh-Tech
    • Actus JVTECH
    • Bons plans
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTECH
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch
    • Xbox Series
    • Overwatch 2
    • FUT 23
    • League of Legends
    • Genshin Impact
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • PS4
  • One
  • Switch
  • Wii U
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Etoile Abonnement RSS

Sujet : Python : Itération et liste

News culture
La Planète des Singes : Le Nouveau Royaume - la révolution simienne est en marche !
DébutPage précedente
1
Page suivantePage suivante
Dasadi Dasadi
MP
Niveau 9
05 février 2016 à 20:55:32

Salut à tous !

Je débute Python et j'ai un petit problème, sûrement tout bête mais qui me bloque.

En fait j'ai écrit une boucle qui donne une valeur à chaque itération. Moi ce que je veux c'est garder la valeur obtenue à chaque itération et la stocker dans une liste pour obtenir quelque chose de la sorte :
Liste=[Valeur à i, Valeur à i+1, Valeur à i+2, ...].

Je bute un peu :(

Une idée :question:

Blaff2 Blaff2
MP
Niveau 10
05 février 2016 à 21:29:57

Tu initialises ta liste vide avant le début de ta boucle (my_list = []) et à chaque itération, tu l'ajoutes à ta liste (my_list.append(value)). :(

TintinMage TintinMage
MP
Niveau 10
05 février 2016 à 21:35:51

Pour ajouter une valeur dans une liste tu peux utiliser liste.append(valeur)

Dasadi Dasadi
MP
Niveau 9
05 février 2016 à 22:04:20

Ah oui en effet c'est ça ! Merci à vous deux !

Je suis dégoûté, j'ai essayé des trucs bien lourds alors que je connaissais cette commande mais elle m'est pas revenue ...

Pendant que j'y suis, je vous pose une autre question :

Je dois réaliser cette opération à chaque itération :

A / (élément liste [i] * élément liste [i+1] * élément liste [i+2] * ...)

et ce jusqu'à ce que ma boucle soit terminée.

Vous comprenez ce que je veux dire ?

TintinMage TintinMage
MP
Niveau 10
05 février 2016 à 22:19:16

Tu veux faire le produit des éléments d'une liste ? Poste ta solution d'abord

Dasadi Dasadi
MP
Niveau 9
05 février 2016 à 22:30:18

Faire le produit des éléments d'une liste je connais :

liste[0]*liste[1]*...

Ce qui me pose problème ici c'est de diviser mon nombre A par chaque élément de la liste.
En gros itération 1:
A / liste[0]
itération 2 :
A / (liste[0]*liste[1])

itération i :
A / (liste[0]*liste[1]*...*liste[i])

et pour le coup une solution j'en ai pas trop.

J'arrive pas à lui faire comprendre qu'il doit multiplier autant de fois qu'il y a d'éléments dans la liste.
Moi la ou j'en suis j'ai ca :

itération 1 :
A/liste[0]

itération 2 :
A/liste[1]

TintinMage TintinMage
MP
Niveau 10
05 février 2016 à 22:36:00

Tu peux stocker la valeur du produit des éléments dans une variable :ok:

Dasadi Dasadi
MP
Niveau 9
05 février 2016 à 22:53:44

Oui mais comment faire pour que la multiplication se fasse à chaque itération avec le nouvel élément ?

Par exemple si je fais :
x = liste1[z] * liste1[z+1]

à l'itération 1 j'aurai :
x = liste1[0]

et à la suivante :
x = liste1[0] * liste1[1]

puis :
x = liste1[1] * liste1[2]

alors qu'il me faudrait : x=liste1[0] * liste1[1] * liste1[2]

enfin je suis peut être bête mais ca fait deux jours que je bosse la dessus et ca c'est vraiment la toute dernière étape, je craque :(

TintinMage TintinMage
MP
Niveau 10
05 février 2016 à 23:06:07

Tu initialises x = 1

iteration i:
x = x * liste[i]

donc
iteration 0:
x = x (qui vaut 1) * liste[0]
iteration 1:
x = x (qui vaut liste[0]) * liste[1]
iteration 2:
x = x (qui vaut liste[0] * liste[1]) * liste[2]

lokilok lokilok
MP
Niveau 10
05 février 2016 à 23:30:47

Pour le coups stocker le résultat dans une autre variable est inutile, ta solution de faire des divisions successives est mieux je pense.

JeanCroutenard JeanCroutenard
MP
Niveau 10
06 février 2016 à 12:52:55

Tu as aussi la fonction reduce qui fait exactement ce que tu veux.

A / reduce(operator.mul, liste, 1)

Dasadi Dasadi
MP
Niveau 9
06 février 2016 à 15:33:18

AAAAAH Ca marche enfin !

J'ai réussi avec la fonction reduce, il m'a fallut un peu de temps pour comprendre le fonctionnement mais c'est bon.

J'avais un peu de mal avec ce qu'on m'avait proposé au dessus même si j'avais compris le principe et que ca aurait dû marché, ... j'avais peut être un problème d'indice !

En tout cas MERCI BEAUCOUP à vous, c'est super sympa de m'avoir aidé !

Pour ce programme c'est bon, dans les mois à venir j'aurai surement beaucoup d'autres problèmes mais chaque chose en son temps !

DébutPage précedente
1
Page suivantePage suivante
Répondre
Prévisu
?
Victime de harcèlement en ligne : comment réagir ?
Infos 0 connecté(s)

Gestion du forum

Modérateurs : godrik, LGV
Contacter les modérateurs - Règles du forum

Sujets à ne pas manquer

La vidéo du moment