Open In App

Python program to count positive and negative numbers in a list

Last Updated : 10 Apr, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

Given a list of numbers, write a Python program to count positive and negative numbers in a List. 

Example:

Input: list1 = [2, -7, 5, -64, -14]
Output: pos = 2, neg = 3

Input: list2 = [-12, 14, 95, 3]
Output: pos = 3, neg = 1

Example #1: Count positive and negative numbers from the given list using for loop Iterate each element in the list using for loop and check if num >= 0, the condition to check positive numbers. If the condition satisfies, then increase pos_count else increase neg_count. 

Python3




# Python program to count positive and negative numbers in a List
 
# list of numbers
list1 = [10, -21, 4, -45, 66, -93, 1]
 
pos_count, neg_count = 0, 0
 
# iterating each number in list
for num in list1:
 
    # checking condition
    if num >= 0:
        pos_count += 1
 
    else:
        neg_count += 1
 
print("Positive numbers in the list: ", pos_count)
print("Negative numbers in the list: ", neg_count)


Output

Positive numbers in the list:  4
Negative numbers in the list:  3

Time Complexity: O(N), Here N is the number of items in the list.
Auxiliary Space: O(1), As constant extra space is used.

Example #2: Using while loop 

Python3




# Python program to count positive and negative numbers in a List
 
# list of numbers
list1 = [-10, -21, -4, -45, -66, 93, 11]
 
pos_count, neg_count = 0, 0
num = 0
 
# using while loop
while(num < len(list1)):
 
    # checking condition
    if list1[num] >= 0:
        pos_count += 1
    else:
        neg_count += 1
 
    # increment num
    num += 1
 
print("Positive numbers in the list: ", pos_count)
print("Negative numbers in the list: ", neg_count)


Output

Positive numbers in the list:  2
Negative numbers in the list:  5

Time Complexity: O(N), Here N is the number of items in the list.
Auxiliary Space: O(1), As constant extra space is used.

Example #3: Using Python Lambda Expressions 

Python3




# Python program to count positive
# and negative numbers in a List
 
# list of numbers
list1 = [10, -21, -4, 45, 66, 93, -11]
 
neg_count = len(list(filter(lambda x: (x < 0), list1)))
 
# we can also do len(list1) - neg_count
pos_count = len(list(filter(lambda x: (x >= 0), list1)))
 
print("Positive numbers in the list: ", pos_count)
print("Negative numbers in the list: ", neg_count)


Output

Positive numbers in the list:  4
Negative numbers in the list:  3

Time Complexity: O(N), Here N is the number of items in the list.
Auxiliary Space: O(1), As constant extra space is used.

Example #4: Using List Comprehension 

Python3




# Python program to count positive
# and negative numbers in a List
 
# list of numbers
list1 = [-10, -21, -4, -45, -66, -93, 11]
 
only_pos = [num for num in list1 if num >= 1]
pos_count = len(only_pos)
 
print("Positive numbers in the list: ", pos_count)
print("Negative numbers in the list: ", len(list1) - pos_count)


Output

Positive numbers in the list:  1
Negative numbers in the list:  6

Time Complexity: O(N), Here N is the number of items in the list.
Auxiliary Space: O(1), As constant extra space is used.

Method: Using enumerate function 

Python3




l=[12, -7, 5, 64, -14];c=0
x=[a for j,a in enumerate(l) if a>=0]
print("Length of Positive numbers is:", len(x))
print("Length of Negative numbers is:", len(l)-len(x))


Output

Length of Positive numbers is: 3
Length of Negative numbers is: 2

Time Complexity: O(N), Here N is the number of items in the list.
Auxiliary Space: O(1), As constant extra space is used.

Method : Using startswith() method

Python3




# Python program to count positive and negative numbers in a List
 
# list of numbers
list1 = [10, -21, 4, -45, 66, -93, 1,0]
 
pos_count, neg_count = 0, 0
list2=list(map(str,list1))
 
# iterating each number in list
for num in list2:
    # checking condition
    if num.startswith("-"):
        neg_count += 1
    elif(num!="0"):
        if(not num.startswith("-")):
            pos_count+=1
         
print("Positive numbers in the list: ", pos_count)
print("Negative numbers in the list: ", neg_count)


Output

Positive numbers in the list:  4
Negative numbers in the list:  3

Time Complexity: O(N), Here N is the number of items in the list.
Auxiliary Space: O(1), As constant extra space is used.

Method: Using sum() method

Python3




l = [12, -7, 5, 64, -14];
x = sum(1 for i in l if i >= 0 )
print("Length of Positive numbers is:", x)
print("Length of Negative numbers is:", len(l)-x)


Output

Length of Positive numbers is: 3
Length of Negative numbers is: 2

Time Complexity: O(N), Here N is the number of items in the list.
Auxiliary Space: O(1), As constant extra space is used.

Method : Using for loop

STEP BY STEP APPROACH :

  1. Initialize a list of numbers called list1 with integer values.
  2. Initialize two variables pos_count and neg_count to 0.
  3. Convert all the numbers in list1 to strings using the map() function and store them in a new list called list2.
  4. Iterate through each number num in list2 using a for loop.
  5. For each number num, check the first character of the string representation of the number using num[0]:
    a. If the first character is “-“, increment the neg_count variable as the number is negative.
    b. Else, check if the number is not equal to “0” using num!=”0″:
    i. If the number is positive, increment the pos_count variable.
  6. Print the final values of pos_count and neg_count using the print() function.

Python3




# Python program to count positive and negative numbers in a List
 
# list of numbers
list1 = [10, -21, 4, -45, 66, -93, 1,0]
 
pos_count, neg_count = 0, 0
list2=list(map(str,list1))
 
# iterating each number in list
for num in list2:
    # checking condition
    if num[0]=="-":
        neg_count += 1
    elif(num!="0"):
        if(not num[0]=="-"):
            pos_count+=1
         
print("Positive numbers in the list: ", pos_count)
print("Negative numbers in the list: ", neg_count)


Output

Positive numbers in the list:  4
Negative numbers in the list:  3

Time Complexity: O(N)
Auxiliary Space: O(N)

Method: Using the collections module and the Counter() function:

  • Importing the Counter class from the collections module.
  • Using a list comprehension to get a list of boolean values to check whether each number is non-negative or not, based on whether it is greater than or equal to zero.
  • Passing the list of booleans to the Counter to get a dictionary mapping for counts.
  • Storing the count of positive and negative no.
  • Printing the output.

Python3




# Python program to count positive and negative numbers in a List
 
from collections import Counter
 
# list of numbers
list1 = [10, -21, 4, -45, 66, -93, 1,0]
 
# use the Counter module to count the number of positive and negative numbers in the list
counts = Counter(num > 0 for num in list1)
 
# get the count of positive and negative numbers excluding 0 from positive as well as negative
pos_count = counts[True]
neg_count = counts[False] - (0 in list1)
 
         
print("Positive numbers in the list: ", pos_count)
print("Negative numbers in the list: ", neg_count)


Output

Positive numbers in the list:  4
Negative numbers in the list:  3

Time Complexity: O(N) as we are traversing the whole list which takes O(N) time complexity.
Auxiliary Space: O(1) as no extra memory is used.



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads