The set model
A set is an unordered collection that stores each element only once. Adding a duplicate does nothing. Iteration order is not guaranteed (unlike dicts).
There are two main reasons to reach for a set. The first is to deduplicate: set(items) collapses any repeats. The second is to ask "is this thing in this collection?" really quickly. Membership tests with in run in O(1) for sets, versus O(n) for lists.
Like dict keys, set elements must be hashable. Strings, numbers, and tuples are fine. Lists and other sets are not. The empty set literal is set(), since {} already means an empty dict.