w3resource

Python: Find the items that are parity outliers in a given list

Python List: Exercise - 236 with Solution

Write a Python program to find items that are parity outliers in a given list.

  • Use collections.Counter with a list comprehension to count even and odd values in the list.
  • Use collections.Counter.most_common() to get the most common parity.
  • Use a list comprehension to find all elements that do not match the most common parity.

Sample Solution:

Python Code:

from collections import Counter
def find_parity_outliers(nums):
  return [
    x for x in nums
    if x % 2 != Counter([n % 2 for n in nums]).most_common()[0][0]
  ] 
print(find_parity_outliers([1, 2, 3, 4, 6]))  
print(find_parity_outliers([1, 2, 3, 4, 5, 6, 7]))

Sample Output:

[1, 3]
[2, 4, 6]

Flowchart:

Flowchart: Find the items that are parity outliers in a given list.

Visualize Python code execution:

The following tool visualize what the computer is doing step-by-step as it executes the said program:


Python Code Editor:

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

Previous: Write a Python program to find the index of the last element in the given list that satisfies the provided testing function.
Next: Write a Python program to convert a given list of dictionaries into a list of values corresponding to the specified key.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.

Python: Tips of the Day

Creates a list of elements, grouped based on the position in the original lists:

Example:

def tips_zip(*args, fill_value=None):
  	max_length = max([len(lst) for lst in args])
 	 result = []
  	for i in range(max_length):
   	 result.append([
      args[k][i] if i < len(args[k]) else fillvalue for k in range(len(args))
   	 ])
 	 return result
print(tips_zip(['a', 'b'], [1, 2], [True, False]))
print(tips_zip(['a'], [1, 2], [True, False]))
print(tips_zip(['a'], [1, 2], [True, False], fill_value = '1'))

Output:

[['a', 1, True], ['b', 2, False]]
[['a', 1, True], [None, 2, False]]
[['a', 1, True], ['1', 2, False]]