Convert all positive numbers in a List to negative in Python

In this article, we will discuss different ways to convert all positive numbers in a List to negative numbers in Python.

Table Of Contents

Method 1: Using List Comprehension and if-else

Inside a List comprehension, iterate over all numbers in a list, and for each number check if it is positive or not. If it is positive, then convert it to negative, and store in the new list. For numbers, which are already negative, store them as it is. Thus List comprehension will give us a list of negative numbers. Let’s see an example,

listOfNumbers = [11, -2, -9, -10, -23, 33, 56, -67, -90]

# Convert all postive numbers in a list to negative
listOfNumbers = [num*-1 if num > 0 else  num for num in listOfNumbers]

print(listOfNumbers)

Output:

[-11, -2, -9, -10, -23, -33, -56, -67, -90]

Method 2: Using map() function

Pass a lambda function, and a list as arguments to the map() function. This lambda function will accept a number as argument, and returns its negative version. If the given number is already negative, then it will return the same number.

Advertisements

The map() function will apply the given lambda function on each element of the list, and store the returned values to a mapped object. We can cast that mapped object to a list. This way we will have a list of negative numbers only. Let’s see an example,

listOfNumbers = [11, -2, -9, -10, -23, 33, 56, -67, -90]

# Convert all postive numbers in a list to negative
listOfNumbers = list(map(lambda x: x*-1 if x > 0 else x, listOfNumbers))

print(listOfNumbers)

Output:

[-11, -2, -9, -10, -23, -33, -56, -67, -90]

Method 3: Using for-loop

Iterate from 0 to N, where N is the size of the given list. During iteration, for each index position, select the element from list at that index position, and make it negative. This way we will have a list of negative numbers only. Let’s see an example,

listOfNumbers = [11, -2, -9, -10, -23, 33, 56, -67, -90]

# Convert all postive numbers in a list to negative
for i in range(len(listOfNumbers)):
    if listOfNumbers[i] > 0:
        listOfNumbers[i] = -listOfNumbers[i]

print(listOfNumbers)

Output:

[-11, -2, -9, -10, -23, -33, -56, -67, -90]

Method 4: Using NumPy

Create a NumPy Array from a list. The apply - operator on the array. It will apply minus operator on each element of the array. But it will inverse the sign of each number in the array. Positives will become nagative, and negatives will become positive. Then we can convert this array back to list. Let’s see an example,

import numpy as np

listOfNumbers = [11, -2, -9, -10, -23, 33, 56, -67, -90]

# create a NumPy Array from list
arr = np.array(listOfNumbers)

# Apply minus operator to each element of array
arr = -arr

# create a list from numpy array
listOfNumbers = arr.tolist()

print(listOfNumbers)

Output:

[-11, 2, 9, 10, 23, -33, -56, 67, 90]

This is not what exactly we expected. But it is always good to know an extra technique.

Summary

We learned about different ways to convert all positive numbers in a list to negative numbers in Python.

Advertisements

Thanks for reading.

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Scroll to Top