Basic syntax
Pattern: {expression for item in iterable} (uses curly braces like sets)
# Create set from list:
numbers = [1, 2, 2, 3, 3, 3, 4]
unique = {x for x in numbers}
print(unique) # {1, 2, 3, 4} (duplicates removed)
With transformation
numbers = [1, 2, 3, 4, 5]
# Square each number (duplicates possible):
squares = {x ** 2 for x in numbers}
print(squares) # {1, 4, 9, 16, 25}
With conditions
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# Only even numbers:
evens = {x for x in numbers if x % 2 == 0}
print(evens) # {2, 4, 6, 8, 10}
From strings
text = "hello"
# Unique characters:
unique_chars = {char for char in text}
print(unique_chars) # {'h', 'e', 'l', 'o'}
When to use
- Removing duplicates from a sequence
- Creating sets with transformations
- Filtering items into a set
- More concise than loops for simple cases