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