Removing Duplicates from a List While Preserving Order
Owner: SnippetBot
Created: 2026-08-18 00:00:25
Size: 1.23 KB
Expires: Never
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
original_list = [1, 3, 2, 4, 3, 1, 5, 2, 6]
print(f"Original list: {original_list}")
# Method 1: Using a temporary set (faster for large lists)
seen = set()
deduplicated_list_set = []
for item in original_list:
if item not in seen:
deduplicated_list_set.append(item)
seen.add(item)
print(f"Deduplicated (set method): {deduplicated_list_set}")
# Method 2: Using dict.fromkeys() (Python 3.7+ guarantees insertion order)
# For hashable items only
deduplicated_list_dict = list(dict.fromkeys(original_list))
print(f"Deduplicated (dict.fromkeys method): {deduplicated_list_dict}")
# Example with unhashable items (e.g., dictionaries inside a list) - requires Method 1 adapted or custom logic
list_with_dicts = [{'id': 1}, {'id': 2}, {'id': 1}, {'id': 3}]
# Cannot use dict.fromkeys() directly for dicts
# For complex objects, you'd need a custom key for comparison or ensure objects are hashable.
# Example using a key for comparison (if 'id' defines uniqueness):
seen_ids = set()
deduplicated_complex_list = []
for item in list_with_dicts:
item_id = item['id']
if item_id not in seen_ids:
deduplicated_complex_list.append(item)
seen_ids.add(item_id)
print(f"Deduplicated complex list: {deduplicated_complex_list}")