Comment créer une liste de nombres en python ?

Active 18 juillet 2014    /    Viewed 31443    /    Comments 0    /    Edit


Exemples de comment créer une liste de nombres en python avec list comprehensions et "built-in functions" list():

Créer une liste d'entiers

Pour créer une liste d'entiers entre 0 et b, il existe la fonction range(n):

>>> l = [i for i in range(10)]
>>> l
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> l = list(range(10))
>>> l
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Autre exemple, créer une liste d'entiers entre a et b (avec b>a):

>>> l = [i for i in range(25,35)]
>>> l
[25, 26, 27, 28, 29, 30, 31, 32, 33, 34]
>>> l = list(range(25,35))
>>> l
[25, 26, 27, 28, 29, 30, 31, 32, 33, 34]

Créer une liste de nombres décimaux avec arange

Pour créer une liste de nombres décimaux entre a et b avec un intervalle donnée il y a la fonction numpy arange:

>>> import numpy as np
>>> l = [i for i in np.arange(2,8,0.5)]
>>> l
[2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 5.5, 6.0, 6.5, 7.0, 7.5]
>>> l = list(np.arange(2,8,0.5))
>>> l
[2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 5.5, 6.0, 6.5, 7.0, 7.5]

Créer une liste de nombres décimaux avec linspace

Pour créer une liste avec n nombres décimaux entre a et b on peut utiliser la fonction numpy linspace:

>>> import numpy as np
>>> l = [i for i in np.linspace(12,16,8)]
>>> l
[12.0, 12.571428571428571, 13.142857142857142, 13.714285714285714, 14.285714285714285, 14.857142857142858, 15.428571428571429, 16.0]
>>> l = list(np.linspace(12,16,8))
>>> l
[12.0, 12.571428571428571, 13.142857142857142, 13.714285714285714, 14.285714285714285, 14.857142857142858, 15.428571428571429, 16.0]

Créer une liste d'entiers aléatoires

Pour obtenir un nombre entier aléatoirement entre [a,b] on peut utiliser la fonction randint:

>>> import random
>>> random.randint(0,10)
7
>>> random.randint(0,10)
0

puis pour créer une liste d'entiers aléatoires on peut utiliser les list comprehensions:

>>> l = [random.randint(0,10) for i in range(5)]
>>> l
[4, 9, 8, 4, 5]

Autre solution avec randrange function (except that can specify a step if you need):

>>> l = [random.randrange(0,10) for i in range(5)]
>>> l
[1, 7, 4, 3, 1]
>>> l = [random.randrange(0,10,2) for i in range(5)]
>>> l
[2, 4, 4, 6, 0]

Autre solution avec la fonction random.sample:

>>> l = random.sample(range(1,100), 10)
>>> l
[89, 56, 87, 51, 46, 25, 52, 44, 10, 32]

Références

Liens Site
List Comprehensions python doc
list() python doc
Python - Create list with numbers between 2 values? stackoverflow
How can I generate a list of consecutive numbers? stackoverflow
numpy.linspace scipy doc
numpy.arange scipy doc


Card image cap
profile-image
Daidalos

Hi, I am Ben.

I have developed this web site from scratch with Django to share with everyone my notes. If you have any ideas or suggestions to improve the site, let me know ! (you can contact me using the form in the welcome page). Thanks!