Partage
  • Partager sur Facebook
  • Partager sur Twitter

Listes et Boucles for in range

23 janvier 2016 à 15:34:01

Bonjour, pour mon TIPE, je vais créer un programme python, pour cela j'ai besoin de créer des listes de cette forme:

a1=[1,3,5]

a2=[2,3,4,5]

...

an=[5,7,9,10]

avec les chiffres dans les liste quelconque, (compris entre 1 et n)

Ce que je cherche a faire, si possible, c'est créer une boucle for qui regarde a chaque tour dans une liste différente, quelque chose du genre:

"a1=[0,1,2,3]

a2=[4,5,6,7]

for i in range (1,3):

    print (ai)"

Ici je comprend pourquoi cela ne marche pas mais je trouve pas d'autre solution, je pourrais passer par des matrices mais j'aurai besoin aussi a chaque tour de la taille de ma liste, ce qui ne pourrait as coincider avec les matrices :p

Dois-je m'y prendre autrement ?

Merci

  • Partager sur Facebook
  • Partager sur Twitter
23 janvier 2016 à 16:33:06

J'ai pas compris. Tu pourrais reformuler stp (donner un exemple précis de ta boucle for par exemple).

Mais une première remarque: mettre chaque liste dans une variable ce n'est pas une bonne pratique. On utilise plutôt une liste de listes:

#PAS BIEN
a1 = [1, 2, 3]
a2 = [5, 3, 7]
a3 = [9, 8, 4]
a4 = [3, 6, 1]


#BEAUCOUP MIEUX
lst = [[1, 2, 3], [5, 3, 7], [9, 8, 4], [3, 6, 1]]

PS: Et utilise des noms de variables explicites. a1 pour une liste .... :o

  • Partager sur Facebook
  • Partager sur Twitter
Précepte: Le mieux est l'ennemi du bien
24 janvier 2016 à 9:25:15

Olygrim t'a répondu. Une liste de listes ne requiert pas d'avoir des listes toutes de la même longueur. Donc pour reprendre ton exemple:

liste_de_listes = [
[2, 1],
[1, 3, 5],
[2, 3, 4, 5],
[5, 7, 9, 10],
[3, 8, 7, 5, 6, 1, 3]
    ]

for une_liste in liste_de_listes:

# Je peux regarder une liste à la fois
for element in une_liste:
    # Je traite un élément d'une liste à la fois
    print("Un élément de la liste:", element)
print("Plus d'élements dans la liste.")
</pre>

-
Edité par Dan737 24 janvier 2016 à 9:25:33

  • Partager sur Facebook
  • Partager sur Twitter
17 octobre 2021 à 21:45:31

Bonjour j’ai besoin de créer des listes de la même forme (lettre+1chiffre) et au mieux comme  expliqué par la suite  / je récupère des éléments de mon tableau JO:( classement aux Jo/nom/nationalité) / je ne connais pas d’avance le nombre de nationalités / le but est de créer des listes des athlètes par nationalité pour pouvoir  les manipuler/ comparer facilement. 

le mieux serait de générer des listes vide avec en nom la nationalité soit USA =[] , JAP=[], SWE=[]

ces nationalités proviennent de ma liste générale 

JO = [[1, pers1,USA],[2,pers2,JAP],[3,pers3,USA]]
j’ai essayé str(JO[0] [2]) =[]
ce qui est assez moche…

même si il doit y avoir une méthode plus simple avec les dicos, si cela est possible J’aimerais le réaliser avec cette méthode puisque j’ai dj eu ce problème par le passé. ( la méthode avec le dico m’intéresse quand même :) )

merci d’avance

Ps: sinon j’espère que vous avez trouvé la solution a votre problème  :) 

  • Partager sur Facebook
  • Partager sur Twitter
18 octobre 2021 à 2:31:09

Tu déterres un sujet de 2016.
Je te suggère de poster ton propre sujet et d'être plus clair dans tes explications.
+ ta base de données originale
+ ce que tu veux obtenir
+ ce que tu veux en faire
  • Partager sur Facebook
  • Partager sur Twitter

Le Tout est souvent plus grand que la somme de ses parties.

18 octobre 2021 à 14:37:33

@Lenan2003 :§ Bonjour, merci de ne pas déterrer d'ancien sujet.

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Je ferme ce sujet. En cas de désaccord, me contacter par MP.

  • Partager sur Facebook
  • Partager sur Twitter