Hey! If you love Python and building Python apps as much as I do, let's connect on Twitter or LinkedIn. I talk about this stuff all the time!

Removing Duplicates from Lists in Python

Learn how to efficiently remove duplicates from lists in Python using various methods, including built-in functions and custom solutions. …


Updated May 19, 2023

Learn how to efficiently remove duplicates from lists in Python using various methods, including built-in functions and custom solutions.

Definition of the Concept

Removing duplicates from a list is a common operation in programming that involves eliminating duplicate elements from a given sequence. In this article, we’ll explore different ways to achieve this in Python.

Step-by-Step Explanation: Using Built-in Functions

Python provides several built-in functions to remove duplicates from lists. Here’s how you can use them:

1. Using set()

The set() function returns a set object which is an unordered collection of unique elements. We can convert our list to a set and then back to a list to remove duplicates.

def remove_duplicates_set(input_list):
    return list(set(input_list))

# Example usage:
input_list = [1, 2, 2, 3, 4, 4, 5, 6, 6]
output_list = remove_duplicates_set(input_list)
print(output_list)  # Output: [1, 2, 3, 4, 5, 6]

2. Using dict.fromkeys()

This method converts the list to a dictionary with all elements as keys, then returns a list of these keys.

def remove_duplicates_dict(input_list):
    return list(dict.fromkeys(input_list))

# Example usage:
input_list = [1, 2, 2, 3, 4, 4, 5, 6, 6]
output_list = remove_duplicates_dict(input_list)
print(output_list)  # Output: [1, 2, 3, 4, 5, 6]

Step-by-Step Explanation: Using Custom Solutions

While built-in functions are efficient and Pythonic, custom solutions can be more educational. Here’s how you can remove duplicates from a list manually:

1. Using List Comprehension with if Condition

You can use a list comprehension to iterate over the input list and include each element only if it doesn’t exist in the output list yet.

def remove_duplicates_list_comprehension(input_list):
    return [x for i, x in enumerate(input_list) if x not in input_list[:i]]

# Example usage:
input_list = [1, 2, 2, 3, 4, 4, 5, 6, 6]
output_list = remove_duplicates_list_comprehension(input_list)
print(output_list)  # Output: [1, 2, 3, 4, 5, 6]

2. Using a For Loop with if Condition

A for loop can also be used to iterate over the input list and append each element to the output list only if it’s not already present.

def remove_duplicates_for_loop(input_list):
    output_list = []
    for x in input_list:
        if x not in output_list:
            output_list.append(x)
    return output_list

# Example usage:
input_list = [1, 2, 2, 3, 4, 4, 5, 6, 6]
output_list = remove_duplicates_for_loop(input_list)
print(output_list)  # Output: [1, 2, 3, 4, 5, 6]

Conclusion

Removing duplicates from a list is an essential operation in programming. Python provides several built-in functions and custom solutions to achieve this efficiently. This article has demonstrated how to use set(), dict.fromkeys(), list comprehension with an if condition, and a for loop with an if condition to remove duplicates from lists in Python. Choose the method that best suits your needs and make sure to understand the underlying logic behind each solution.

Stay up to date on the latest in Python, AI, and Data Science

Intuit Mailchimp