PYTHON
Perform Efficient Set Operations with Python's `set` Type
Master Python's built-in `set` data structure for highly efficient union, intersection, and difference operations, perfect for comparing unique lists of permissions, tags, or user groups.
# Example lists (e.g., user roles, subscribed topics, product tags)
user_roles_a = ["admin", "editor", "viewer", "guest"]
user_roles_b = ["admin", "moderator", "viewer"]
all_possible_roles = ["admin", "editor", "moderator", "viewer", "contributor"]
# Convert lists to sets for efficient operations
set_a = set(user_roles_a)
set_b = set(user_roles_b)
set_all = set(all_possible_roles)
print(f"User A roles: {set_a}")
print(f"User B roles: {set_b}")
# Union: Elements in either set_a OR set_b
union_roles = set_a.union(set_b)
# union_roles = set_a | set_b
print(f"Roles in common or unique to A/B (union): {union_roles}")
# Intersection: Elements in BOTH set_a AND set_b
common_roles = set_a.intersection(set_b)
# common_roles = set_a & set_b
print(f"Roles common to both A and B (intersection): {common_roles}")
# Difference: Elements in set_a BUT NOT in set_b
roles_only_in_a = set_a.difference(set_b)
# roles_only_in_a = set_a - set_b
print(f"Roles only in A (difference): {roles_only_in_a}")
# Symmetric Difference: Elements in either set_a OR set_b, but NOT in both
roles_unique_to_each = set_a.symmetric_difference(set_b)
# roles_unique_to_each = set_a ^ set_b
print(f"Roles unique to A or B (symmetric difference): {roles_unique_to_each}")
# Check if a set is a subset or superset
print(f"Is set_a a subset of set_all? {set_a.issubset(set_all)}")
print(f"Is set_all a superset of union_roles? {set_all.issuperset(union_roles)}")
How it works: Python's built-in `set` data structure stores unique, unordered elements and provides highly optimized operations for comparisons between collections. You can efficiently perform `union` (elements in either set), `intersection` (elements common to both), `difference` (elements in one set but not the other), and `symmetric difference` (elements unique to each set). These operations are invaluable for tasks like managing permissions, comparing feature flags, or finding discrepancies between datasets in web applications.