 GFG App
Open App Browser
Continue

# Python program to count positive and negative numbers in a list

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.

## 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.

## 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.

## 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:
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.

My Personal Notes arrow_drop_up