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}")