A set is an unordered collection of unique items. Good for membership tests and removing duplicates.
Goal
Build a set, drop duplicates from a list, and use union / intersection.
Unique values
cities = ["Nairobi", "Mombasa", "Nairobi", "Kisumu", "Mombasa"]
print(set(cities))
print(list(dict.fromkeys(cities)))set(...) does not keep order. dict.fromkeys keeps first-seen order.
Membership
allowed = {"Nairobi", "Mombasa", "Kisumu"}
print("Nakuru" in allowed)
print("Nairobi" in allowed)Set algebra
a = {"Ada", "Alan", "Grace"}
b = {"Grace", "Linus", "Nia"}
print(a | b)
print(a & b)
print(a - b)
print(a ^ b)| union, & intersection, - difference, ^ symmetric difference.
Mutate
seen = set()
seen.add("Ada")
seen.add("Ada")
seen.update(["Alan", "Grace"])
seen.discard("missing")
print(seen)discard is silent if the item is absent. remove raises KeyError.
Tip
Sets cannot contain lists (unhashable). Tuples of simple values are fine: {(1, 2), (3, 4)}.