# Python program to create a list centered on zero

• Last Updated : 17 Aug, 2022

Given two integer variables, limit and diff, write a Python program to create a list that is centered on zero, using limit, which specifies limit of the list and diff that specifies the common difference between integers.

Examples:

```Input : limit = 1, diff = 0.5
Output : [-1, -0.5, 0.0, 0.5, 1]

Input : limit = 25, diff = 5
Output : [-25, -20, -15, -10, -5, 0, 5, 10, 15, 20, 25]```

Approach #1: Naive Approach

This is a naive approach to the above problem. First, create an empty list ‘lst’, and then we use a while loop to append the next integer with a difference equal to ‘diff’.

## Python3

 `# Python3 program to Convert a``# list to dictionary` `def` `create(limit, diff):``        ` `    ``lst ``=` `[``-``limit]``    ``while` `lst[``-``1``] < limit:``        ``lst.append(lst[``-``1``] ``+` `diff)``    ``lst[``-``1``] ``=` `limit``    ``return` `lst``        ` `# Driver code``limit ``=` `1``diff ``=` `0.5``print``(create(limit, diff))`

Output:

`[-1, -0.5, 0.0, 0.5, 1]`

Approach #2: Using Python Numpy

Using Numpy module makes the solution a lot easier. In this method, we use np.arange which return evenly spaced values within a given interval ‘diff’.

## Python3

 `# Python3 program to Convert a``# list to dictionary``import` `numpy as np` `def` `create(limit, diff):``    ``lst ``=` `np.arange(diff, limit, diff)``    ``if` `(lst[``-``1``] !``=` `limit):``        ``lst ``=` `np.r_[lst, limit]``        ` `    ``return` `np.r_[``-``lst[::``-``1``], ``0``, lst].tolist()``        ` `# Driver code``limit ``=` `1``diff ``=` `0.5``print``(create(limit, diff))`

Output:

`[-1.0, -0.5, 0.0, 0.5, 1.0]`

Approach #3: list comprehension

## Python3

 `# Python3 program to create a list centered on zero` `def` `create(limit, diff):``    ``length ``=` `int``(((limit``/``diff)``*``2``)``+``1``)   ``    ``list` `=` `[``-``limit``+``i``*``diff ``for` `i ``in` `range``(length)]``    ``return` `list` `    ` `        ` `# Driver code``limit ``=` `1``diff ``=` `0.5``print``(create(limit, diff))`

Output:

`[-1.0, -0.5, 0.0, 0.5, 1.0]`

My Personal Notes arrow_drop_up