# Creating a set email_addresses = {"user1@example.com", "user2@example.com", "user1@example.com"} print(f"Initial email addresses (unique): {email_addresses}") # Adding elements email_addresses.add("user3@example.com") email_addresses.add("user2@example.com") # Adding existing element has no effect print(f"After adding: {email_addresses}") # Checking for membership (very fast for sets) print(f"Is user1@example.com present? {'user1@example.com' in email_addresses}") print(f"Is user4@example.com present? {'user4@example.com' in email_addresses}") # Removing elements email_addresses.remove("user3@example.com") print(f"After removing: {email_addresses}") # Set operations subscribers_newsletter_A = {"user1@example.com", "user2@example.com", "user4@example.com"} subscribers_newsletter_B = {"user2@example.com", "user3@example.com", "user5@example.com"} # Union: all unique subscribers from A or B all_subscribers = subscribers_newsletter_A.union(subscribers_newsletter_B) print(f"All subscribers (A U B): {all_subscribers}") # Intersection: subscribers common to both A and B common_subscribers = subscribers_newsletter_A.intersection(subscribers_newsletter_B) print(f"Common subscribers (A \u2229 B): {common_subscribers}") # Difference: subscribers in A but not in B subscribers_A_only = subscribers_newsletter_A.difference(subscribers_newsletter_B) print(f"Subscribers in A only (A - B): {subscribers_A_only}") # Symmetric Difference: subscribers in A or B but not both exclusive_subscribers = subscribers_newsletter_A.symmetric_difference(subscribers_newsletter_B) print(f"Exclusive subscribers (A \u2296 B): {exclusive_subscribers}")