Get unique values from a list in Python

A list in Python is a collection of items placed within [] which may contain duplicate values. In this article, we will explore different methods to extract only the unique values from a list while preserving or modifying the original order.

Using append() with Manual Checking

This approach creates a new empty list and appends elements only if they don't already exist. We use a for loop with not in condition to check for duplicates ?

Example

def get_unique_values(original_list):
    # Initialize an empty list
    unique_list = []
    
    # Check for elements
    for item in original_list:
        # Check if exists in unique_list
        if item not in unique_list:
            unique_list.append(item)
    
    return unique_list

days_list = ['Mon', 'Tue', 'Mon', 'Wed', 40, 40]
result = get_unique_values(days_list)
print("Original list:", days_list)
print("Unique values:", result)
Original list: ['Mon', 'Tue', 'Mon', 'Wed', 40, 40]
Unique values: ['Mon', 'Tue', 'Wed', 40]

Using set() Conversion

A set only contains unique values. This approach converts the list to a set (removing duplicates) and then back to a list. Note that this method doesn't preserve the original order ?

Example

days_list = ['Mon', 'Tue', 'Mon', 'Wed', 40, 40]
unique_set = set(days_list)
unique_list = list(unique_set)

print("Original list:", days_list)
print("Unique values:", unique_list)
Original list: ['Mon', 'Tue', 'Mon', 'Wed', 40, 40]
Unique values: [40, 'Wed', 'Tue', 'Mon']

Using NumPy unique()

NumPy provides a unique() function that returns sorted unique elements. This method converts all elements to strings and sorts them alphabetically ?

Example

import numpy as np

days_list = ['Mon', 'Tue', 'Mon', 'Wed', 40, 40]
unique_values = np.unique(days_list)

print("Original list:", days_list)
print("Unique values:", unique_values)
print("Type:", type(unique_values))
Original list: ['Mon', 'Tue', 'Mon', 'Wed', 40, 40]
Unique values: ['40' 'Mon' 'Tue' 'Wed']
Type: <class 'numpy.ndarray'>

Using dict.fromkeys() (Order Preserving)

This method preserves the original order while removing duplicates. Python dictionaries maintain insertion order since Python 3.7 ?

Example

days_list = ['Mon', 'Tue', 'Mon', 'Wed', 40, 40]
unique_list = list(dict.fromkeys(days_list))

print("Original list:", days_list)
print("Unique values (order preserved):", unique_list)
Original list: ['Mon', 'Tue', 'Mon', 'Wed', 40, 40]
Unique values (order preserved): ['Mon', 'Tue', 'Wed', 40]

Comparison

Method Preserves Order? Performance Best For
append() with check Yes Slow (O(n²)) Small lists, learning
set() No Fast (O(n)) Order doesn't matter
dict.fromkeys() Yes Fast (O(n)) Order preservation needed
numpy.unique() No (sorted) Fast Numerical data, sorted output

Conclusion

Use dict.fromkeys() for fast, order-preserving unique extraction. Use set() when order doesn't matter. Use np.unique() for numerical data that needs sorting.

Updated on: 2026-03-15T18:31:13+05:30

3K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements