Pour générer une liste de nombres avec python il existe plusieurs possibilités. On peut utiliser les List Comprehensions ou encore passer par la fonction built-in list(). Illustration, supposons que l'on veuille avoir une liste de nombres entiers entre 0 et N, on peut utiliser 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]
Pour avoir une liste de nombres entiers entre N et M (avec M>N) on peut utiliser range(N,M):
>>> 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]
Pour avoir une liste de nombres décimaux dans un intervalle (N,M) avec un pas donné, on peut utiliser la fonction de 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]
Pour avoir une liste de nombres décimaux dans un intervalle (N,M) avec le nombre de nombres décimaux que l'on souhaite on peut passer par le 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]
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 |