Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
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.
