Les discussions dans le fil Liste injective m'ont amené à me demander quelle était la meilleur manière de créer en Python un tableau de taille donnée initialisé avec une certaine valeur, pour un débutant, dans le contexte de l'enseignement en CPGE (i.e. Python utilisé comme outil et non comme objectif). Il n'y a pas, à ma connaissance, de fonction qui permette cela dans les librairies standards. Il n'y a d'ailleurs pas vraiment de notion de tableau, même si l'on utilise pour cela les listes natives. Il ne s'agit bien entendu pas ici d'utiliser numpy.
1) La manière pythonique :
Code : Tout sélectionner
tableau = [valeur for _ in range(taille)]
2) La manière pas incroyable mais je n'ai pas trouvé mieux :
Code : Tout sélectionner
tableau = []
for _ in range(taille):
tableau.append(valeur)
3) La méthode boguée :
Code : Tout sélectionner
tableau = [valeur] * taille
4) La même méthode déboguée:
Code : Tout sélectionner
tableau = [None] * taille
for index in range(taille):
tableau[index] = valeur
5) Une variante
Code : Tout sélectionner
tableau = list(range(taille))
for index in range(taille):
tableau[index] = valeur
Donc, pour l'instant, mieux vaut présenter 2). Qu'en pensez-vous ? Est-ce qu'il y a une autre manière de faire (élégante, efficace, pédagogique) ?
EDIT : Si valeur est non mutable, la solution [valeur] * taille est sans doute la "bonne" solution pour un pur pythoniste, davantage que 1). Mais ce n'est pas le sujet