Sets are only useful when trying to ensure unique items are preserved. Before sets where available, it was common to process items and check if they exist in a list (or dictionary) before adding them.
List example
Here unique is empty list. Every time I compare with this list, and if it is not duplicate then the input item will append to unique list.
>>> unique = []
>>> for name in ['srini', 'srini', 'rao', 'srini']:
... if name not in unique:
... unique.append(name)
...
>>> unique
['srini', 'rao']
There is no need to do this when using sets. Instead of appending you add to a set:
Set example
>>> for name in ['srini', 'srini', 'rao', 'srini']:
... unique.add(name)
...
>>> unique
{'srini', 'rao'}
Just like tuples and lists, interacting with sets have some differences on how to access their items. You can’t index them like lists and tuples, but you can iterate over them without issues.
The only reason I use sets is to ensure there aren’t any duplicates. If that is not needed, a list is preferable.
Related Posts