Active March 09, 2018 / Viewed 252599 / Comments 0 / Edit

Examples of how to create a list of numbers in python using list comprehensions or built-in functions list():

To create a list of integers between 0 and N, a solution is to use the range(N) function:

`>>> 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]`

To create a list of integers between N and M (with M>N), the function range() can still be used:

`>>> 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]`

To create a list of floats between (N,M) with a given step, a solution is to use the numpy function called 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]`

To create a list of floats between (N,M) with a given number of elementsa solution is to use the numpy function 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]`

The python function randint can be used to generate a random integer in a chosen interval [a,b]:

`>>> import random`

`>>> random.randint(0,10)`

`7`

`>>> random.randint(0,10)`

`0`

A list of random numbers can be then created using python list comprehension approach:

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

`>>> l`

`[4, 9, 8, 4, 5]`

Another solution is to use 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]`

A third solution is to create a list of random numbers with no repetition, is to use random.sample function

`>>> l = random.sample(range(1,100), 10)`

`>>> l`

`[89, 56, 87, 51, 46, 25, 52, 44, 10, 32]`

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 |

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!

Did you find this content useful ?, If so, please consider donating a tip to the author(s). MoonBooks.org is visited by millions of people each year and it will help us to maintain our servers and create new contents.

Ads

License

This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
Ads

Ads