|
def unzip_fn(items: list): |
|
return [list(i) for i in zip(*items)] |
|
|
|
def remove_duplicates(items: list, key=lambda x: x, show_process=False, unzip=False): |
|
''' |
|
Remove duplicates from a list of items |
|
Args: |
|
items: List of items |
|
key: Function to get the key of the item |
|
show_process: Whether to show the process or not |
|
Returns: |
|
List: List of items without duplicates |
|
''' |
|
progress = lambda x, *, desc: x |
|
if show_process: |
|
import tqdm |
|
progress = tqdm.tqdm |
|
deduped_items = list({key(item): item for item in progress(items, desc='Deduping...')}.values()) |
|
return deduped_items if not unzip else unzip_fn(deduped_items) |