Générer une liste d'élément

Fermé
bilaiz - 23 déc. 2013 à 18:52
heyquem Messages postés 759 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 29 décembre 2013 - 24 déc. 2013 à 15:20
Bonjour,

L'idée c'est de générer une liste d'élément dont ceux ci se nomme Minicarre xyz et dont les valeurs en x varient entre 2 et 6, en y entre 2 et 8 et en z entre 0 et 2. Comment puis-je faire?

x=random.randint (2,7)
y=random.randint (2,9)
z=random.randint (0,3)
element_delete_liste1 = "(Minicarre {0}x {1}y {2}z)".format(x,y,z)
print (element_delete_liste1)

Quand je fais ceci, j'obtiens juste un élément des 105 éléments souhaité.

L'objectif désiré est une liste d'élément donnant quelque chose comme ceci:

(Minicarre 0x, 0y,0z), (Minicarre 1x, 0y,0z), (Minicarre 2x, 0y,0z), (Minicarre 3x, 0y,0z),...
(Minicarre 0x, 1y,0z), (Minicarre 0x, 2y,0z), (Minicarre 0x, 3y,0z), (Minicarre 0x, 4y,0z),...
(Minicarre 0x, 0y,1z), (Minicarre 0x, 0y,2z), (Minicarre 0x, 0y,3z), (Minicarre 0x, 0y,4z),...
(Minicarre 1x, 1y,0z), (Minicarre 2x, 1y,0z), (Minicarre 3x, 1y,0z), (Minicarre 4x, 1y,0z),...
etc
etc
etc

En espérant que vous puissiez m'aider,
Merci d'avance
A voir également:

1 réponse

heyquem Messages postés 759 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 29 décembre 2013 130
24 déc. 2013 à 15:20
Bonjour,

Tu confonds
randint()
et
range()
.

Note aussi que
randint(2,7)
délivre au hasard l'un des entiers 2,3,4,5,6,7,8,9 , c'est à dire que le 9 est compris comme valeur possible,
contrairement à
range(2,9)
qui est
[2, 3, 4, 5, 6, 7, 8]
.

NB:
xrange() 
est un générateur: il ne délivre ses élements que si on le sollicite avec la méthode
next()
ou par une boucle
for
.

import random

li = ["(Minicarre {0}x {1}y {2}z)".format(x,y,z)
for x in xrange(2,7)
for y in xrange(2,9)
for z in xrange(0,3)]
print li
print len(li)

random.shuffle(li)
print
print li

L'instruction avec
shuffle()
est là pour montrer comment obtenir les éléments dans un désordre stochastique

L'expression après li = est une list comprehension
0