2013-03-30 2 views

Répondre

11
number = 1 
elements = 1000 

thelist = [number] * elements 

>>> [1] * 10 
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1] 

NB: Ne pas essayer de dupliquer des objets mutables (notamment les listes de listes) comme ça, ou cela se produira:

In [23]: a = [[0]] * 10 

In [24]: a 
Out[24]: [[0], [0], [0], [0], [0], [0], [0], [0], [0], [0]] 

In [25]: a[0][0] = 1 

In [26]: a 
Out[26]: [[1], [1], [1], [1], [1], [1], [1], [1], [1], [1]] 

Si vous utilisez numpy, pour les listes multidimensionnelles numpy.repeat est votre meilleur pari. Il peut répéter des tableaux de toutes les formes sur des axes séparés.

+2

La question est aussi 'numpy', donc peut-être mentionner' numpy.repeat (1, 10) '? (Bien que ce soit plus lent que de multiplier une liste jusqu'à ce que 'n' soit vraiment gros.) – DSM

+2

Notez que ceci peut avoir des résultats inattendus (selon votre connaissance du fonctionnement des variables Python) avec des types mutables - il produit une liste de références au même objet. –

+0

Pour honorer la balise numpy, 'a = np.empty ((elements,), dtype = np.int); a.fill (nombre) 'est beaucoup plus rapide que' [nombre] * elements' pour les valeurs plus élevées de 'elements'. Mais le retour n'est pas une vraie liste. – Jaime

Questions connexes