PedroGeoGISdev
  • Home
  • Linux OS
    • Linux: concepts
    • Linux: basic concepts
    • Linux: Bash
    • Linux: su and sudo
    • Linux: pipes
    • Linux: File System
    • Linux: Virtual Machines

    • Linux: distros
    • Linux Distros: Ubuntu
    • Linux Distros: Mint
    • Linux Distros: Debian
    • Linux Distros: openSuse
    • Linux Distros: Manjaro
    • Linux Distros: Red Hat Enterprise

    • Linux: laboratories
    • Linux Lab#LI01-1: Choose Linux
    • Linux Lab#LI01-2: Install at least three distributions
    • Linux Lab#LI01-3: Adjust user permissions
    • Linux Lab#LI02-1: Export env user with grep and pipe
    • Linux Lab#LI03-1: Manage users and groups
    • Linux Lab#LI03-2: Manage files
    • Linux Lab#LI03-3: Manage software
    • Linux Lab#LI03-4: Manage hardware
    • Linux Lab#LI04-1: Bash scripting, qtool
    • Linux Lab#LI04-2: Bash scripts as terminal tool
    • Linux Lab#LI04-3: Distribute the terminal app

    • Linux readings
    • Linux Resources
  • DevOps
    • What is DevOps
    • DevOps: Introduction
    • DevOps: Agile and Microservices
    • Infrastructure as code (IaC)
    • Immutable Infrastructure
    • Software Lifecycle

    • Documentation
    • How to document: Quarto and Obsidian

    • Network protocols
    • Network: Basics
    • Network: Client-server
    • Network Protocols
    • Network: DNS
    • Network: API Rest
    • Network: gRPC
    • Network: Websocket
    • Network: SMTP
    • Network: Ping
    • Network: UDP
    • Network: webhook
    • Network: SOAP
    • Network: graphQL

    • Version Control
    • Git
    • GitHub
    • Idea and GitHub 2023
    • Git and GitHub 2023 CLI

    • IDEs
    • IDE: Visual Code
    • IDE: IntellJIdea

    • DevOps tools
    • Amazon Web Services AWS
    • Docker
    • Jenkins pipelines
    • Kubernetes k8s
    • Digital Ocean
    • Nagios
    • Ansible

    • DevOps Laboratories
    • Lab 1: chat App
    • Lab 2: Spring Boot AWS AEB manually
    • Lab 3: Spring Boot and AWS S3 publisher
    • Lab 4: Spring Boot Docker/Jenkins
    • Lab 5: k8s on Digital Ocean
    • Lab 6: Spring Boot AWS codecommit

    • DevOps readings
    • DevOps Resources
  • MarkUp
    • MarkUp Languages
    • Introduction Markup
    • HTML Markup
    • Markdown Markup
    • Markdown and HTML working together, good idea?

    • Quarto Markdown
    • Quarto Markdown: basics
    • Quarto Markdown: creating
    • Quarto Markdown: publishing
    • Quarto Markdown: code & data
    • Quarto Markdown: api rest call
    • Quarto Markdown: OJS Cells
    • Quarto Markdown: cheat-sheet

    • Styling: CSS
    • Cascade Style Sheet
    • Cascade Style Sheet: Box Model and Containers
    • CSS: W3.css

    • MarkUp Languages Laboratories
    • Lab#MD01-1: Create and publish by Quarto

    • MarkUp Languages readings
    • MarkUp Languages Resources
  • Java SE
    • What is Java SE
    • Java Standard Edition: Basics
    • Java Standard Edition: Principles
    • Java MOOC Helsinki
    • Java MOOC Helsinki Syllabus

    • Java Create Project
    • Java SE: Maven
    • Java SE: Create Maven Project
    • Java SE: Project push GitHub
    • Java SE: JUnit and TDD

    • Java Concepts
    • Java SE: Class and Objects
    • Java SE: Scope
    • Java SE: static modifier
    • Java SE: Coupling and DDD
    • Java SE: Packages
    • Java SE: Abstract/Interface
    • Java SE: Java 8

    • Java Principles
    • Java SE: Encapsulation
    • Java SE: Abstraction
    • Java SE: Inherence
    • Java SE: Polymorphism

    • Java Design Patterns
    • Java Patterns: UML
    • Java Patterns: Types
    • Singleton
    • Factory
    • Abstract Factory
    • Builder
    • Facade
    • Bridge
    • Decorator
    • Composite
    • Observer
    • Strategy
    • State
    • Commander

    • Java SE Laboratories
    • Lab#SE00-1: Maven Person
    • Lab#SE00-2: Maven Clinic
    • Lab#SE00-3: Library Model
    • Lab#SE00-4: Abstract/Interface Human
    • Lab#SE01-1: Maven/Gradle Person and Account
    • Lab#SE01-2: Maven/Gradle Person and Account stored in JSON
    • Lab#SE02-1: Movie/Review, Model
    • Lab#SE02-2: Movie/Review, CRUD Operations
    • Lab#SE02-3: Movie/Review, factory
    • Lab#SE02-4: Movie/Review, interactivity and coupling
    • Lab#SE02-5: Movie/Review, simulate interactivity by console
    • Lab#SE03-1: Library/Book, Core-Model
    • Lab#SE03-2: Library/Book, Sprint Zero
    • Lab#SE03-3: Library/Book, Expand Model
    • Lab#SE04-1: healthyFood Restaurant, Core Model

    • Java SE readings
    • Java SE Resources
  • Python
    • Python Basics
    • Python: Basic Concepts
    • Python: Numbers
    • Python: Strings
    • Python: Conditionals
    • Python: Lists and Loops
    • Python: Nested Loops
    • Python: Tuples
    • Python: Sets
    • Python: Dictionaries
    • Python: Functions
    • Python: Higher-order Functions
    • Python: Variable Scope
    • Python: Variable Assigment
    • Python: None keyword in Python
    • Python: Object Oriented Programming (OOP)
    • Python: Inheritance and Polymorphism
    • Python: Encapsulation
    • Python: Abstraction
    • Python: Exceptions
    • Python: Cheat-Sheets
  • JavaScript
    • JavaScript Basics
    • JavaScript: Fundamentals
    • JavaScript: Data Types
    • JavaScript: Variables
    • JavaScript: Operators
    • JavaScript: Conditionals
    • JavaScript: Loops
    • JavaScript: Functions
    • JavaScript: Arrays
    • JavaScript: Objects

    • React Framework

    • ReactJS: Principles
    • React JS: Introduction
    • React JS: render virtual DOM
    • React JS: Create a React project
    • React JS: Components
    • React JS: JSX
    • React JS: props and state

    • JavaScript: web scripting
    • JavaScript: basics
    • JavaScript: functions
    • JavaScript: objects
    • JavaScript: variables
    • JavaScript: flux control

    • ES6: ECMAScript 6
    • React JS ES6: arrow functions
    • React JS ES6: import modules
    • React JS ES6: array, data and key
    • React JS ES6: destructuring
    • React JS ES6: spread operator

    • ReacJS 18: Hooks
    • React JS: Rules of Hooks
    • ReactJS: useState
    • React JS: useReducer
    • React JS: useRef
    • React JS: useEffect
    • React JS: useContext
    • ReactJS: useMemo
    • ReactJS: custom hooks

    • ReactJS: Designing an App
    • React JS App: async
    • React JS App: events
    • React JS App: router
    • React JS App: conditional render
    • React JS App: styling

    • React JS: Laboratories
    • Lab#RE01-1: API Rest Axios
    • Lab#RE02-1: Router & Hooks
    • Lab#RE03-1: to-do app
    • Lab#RE03-2: HighCharts
    • Lab#RE03-3: API Rest Mono
    • Lab#RE03-4: API Rest Domains
    • Lab#RE03-5: data management
    • Lab#RE04-1: todo & server
    • Lab#RE04-2: Spring Boot & ReactJS
    • Lab#RE05-1: chat & websockets
    • Lab#RE05-2: chat: backend
    • Lab#RE05-3: chat & AWS
    • Lab#RE05-4: chat: test ws AWS
    • Lab#RE05-5: chat & front
    • Lab#RE05-6: chat & ws: front
    • Lab#RE06-1: healthyFood Restaurant
    • Lab#RE06-1-PR: create a pull request
    • Lab#RE07-1: traffic lights simulation

    • React JS readings
    • ReactJS Resources
  • Backend
    • Spring Legacy
    • Spring Framework
    • Spring MVC
    • Springs Servlets

    • Spring Boot Basics
    • Spring Boot: fundamentals
    • Spring Boot: create a Project
    • Spring Boot: H2 DB and Thymeleaf
    • Spring Boot: cycle

    • Spring Boot Concepts
    • Spring Boot: Dependency Injection
    • Spring Boot: Annotations
    • Spring Boot: Controller
    • Spring Boot: View
    • Spring Boot: Thymeleaf
    • Spring Boot: Vaadin Flow
    • Spring Boot: Vaadin Hilla
    • Spring Boot: Model
    • Spring Boot: Rest
    • Spring Boot: Data & DB
    • Spring Boot: JPA & DI
    • Spring Boot: JPA Mappings
    • Spring Boot: JPA Relationships
    • Spring Boot: JPA Queries
    • Spring Boot: JPA Inherence
    • Spring Boot: Scaling

    • Spring Boot Laboratories
    • Lab#SB00-1: Library UML
    • Lab#SB00-2: CRUD User
    • Lab#SB00-3: LibraryManagement
    • Lab#SB00-4: API Rest
    • Lab#SB00-5: Rest & JPA-H2
    • Lab#SB00-6: Rest & MongoDB
    • Lab#SB00-7: Styling
    • Lab#SB01-1: DataBase
    • Lab#SB02-1: JPA Relationships
    • Lab#SB03-1: APIs & cloud
    • Lab#SB04-1: JPA Inherence
    • Lab#SB05-1: API Rest
    • Lab#SB06-1: employeeCourse
    • Lab#SB07-1: monitor Book
    • Lab#SB08-1: Restaurant UML
    • Lab#SB08-2: Vaadin
    • Lab#SB08-3: H2 and API Rest
    • Lab#SB08-4: JPA
    • Lab#SB08-5: Test API Rest
    • Lab#SB09-1: SpringIO Conference

    • Spring Boot readings
    • Spring Boot Resources
  • Learning
    • Vocabulary
    • General Vocabulary
    • SCRUM Vocabulary
    • DevOps Vocabulary
    • Java SE Vocabulay
    • Spring Boot Vocabulary
    • DataBase Vocabulary
    • ReactJS Vocabulary
    • Web Vocabulary

    • Learning
    • Useful Questions
    • Learning: tips
    • Writing
    • Taking Notes
    • Comments
    • Document
    • Auto-Evaluate

    • Books & Articles
    • Books
    • Articles

    • What is SCRUM
    • SCRUM Agile Methodology
    • Agile Manifesto & Values
    • SCRUM Guide

    • Scrum Steps
    • Meetings, Impediments and Iterations
    • User stories, Tasks and Habits
    • Delivering Value & Communication
    • ScrumMaster, how it works
    • Mindset, the key to everything
    • Product Owner, how it works
    • Managing Time & Mind
    • Team & the Specialist
    • Albertus’ Dilemma
    • Before SCRUM
    • Team Dynamics
    • Emotions and Thoughts
    • Decision Making and Intuition
    • Beyond SCRUM
    • Balances, atmosphere and tools

    • Resources
    • SCRUM Resources
  • QGIS
    • QGIS basics
    • QGIS: basic concepts

    • QGIS laboratories
    • QGIS Laboratory 1: Introduction to Open Source GIS
  • ArcGIS Pro
    • ArcGIS Pro basics
    • ArcGIS Pro: basic concepts

    • ArcGIS Pro laboratories
    • ArcGIS Pro Laboratory 1: Getting Started
  • Bookmarks
    • Online Resources
    • Online Resources
  • About
    • About me and this site
    • About me
    • About this site
    • About images credit
  • Maps
  • Featured Projects
    • ✈️ Flight tracker
    • 🧑 People tracker
    • 🚗 Renting Car
    • Email
    • GitHub
    • LinkedIn
  1. Python Basics
  2. Python: Sets
  • Python

  • Python Basics
    • Python: Basic Concepts
    • Python: Numbers
    • Python: Strings
    • Python: Conditionals
    • Python: Lists and Loops
    • Python: Nested Loops
    • Python: Tuples
    • Python: Sets
    • Python: Dictionaries
    • Python: Functions
    • Python: Higher-order Functions
    • Python: Variable Scope
    • Python: Variable Assigment
    • Python: None keyword in Python
    • Python: Object Oriented Programming (OOP)
    • Python: Inheritance and Polymorphism
    • Python: Encapsulation
    • Python: Abstraction
    • Python: Exceptions
    • Python: Cheat-Sheets

On this page

  • 1 Overview
  • 2 Key characteristics of Python sets include:
  • 3 Sets
  • 4 Indexing Not Allowed
  • 5 Mutability
  • 6 in
  • 7 Operations
  • 8 Union
  • 9 Intersection
  • 10 Difference
  • 11 Symmetric difference
  • 12 Functions and methods
  • 13 Update
  • 14 Iteration
  • 15 Comprehension
  • 16 Example
  • 17 Exercises
    • 17.1 Set operations
    • 17.2 Membership
    • 17.3 Sub and superset
    • 17.4 Unique elements
    • 17.5 Attendance
    • 17.6 Disjoint sets
    • 17.7 Missing Numbers
  • Edit this page
  • View source
  • Report an issue
  1. Python Basics
  2. Python: Sets

Python: Sets

Python Sets

python
sets
The file system is organized into a hierarchical structure, starting with the root directory
Author

Isaac Boixaderas

Published

Sunday, June 1, 2025

Modified

Sunday, November 16, 2025

1 Overview

📘 Sets in Python

A set in Python is an unordered collection of unique elements, which means it cannot contain duplicate values. Sets are mutable, allowing for elements to be added or removed, but the elements themselves must be immutable types. Unlike lists or tuples, sets do not support indexing or slicing because they do not maintain any order among their elements.

2 Key characteristics of Python sets include:

  • Unordered: The elements are stored without any particular sequence.
  • Unique elements: Each element can appear only once in a set.
  • Mutable container: The set itself can be modified by adding or removing elements.
  • Elements must be hashable (immutable types such as numbers, strings, and tuples).
  • Sets support standard mathematical set operations such as union, intersection, difference, and symmetric difference.
  • Sets are commonly used for fast membership testing and eliminating duplicates from collections.

Python sets can be created using curly braces {} or the set() constructor, the latter being necessary for creating an empty set. They can be constructed from any iterable, allowing conversion from lists, tuples, or other collections.

Set manipulation methods include adding elements with add(), updating with multiple elements using update(), and removing elements with remove() or discard().

Overall, Python sets provide an efficient and convenient way to work with collections of distinct items with operations resembling those in mathematical set theory.


3 Sets

  • Unordered collection of unique elements.
  • E.g., useful for guaranteeing no duplicates.

# Only unique elements are stored, so 2 is only stored once
my_set = {1, 4, 2, 3, 2, 2}
print(my_set)
{1, 2, 3, 4}

4 Indexing Not Allowed

  • Set elements are unordered, so we cannot access them using indices:
my_set = {1, 4, 2, 3, 2, 2}
print(my_set[1])
TypeError: ‘set’ object is not subscriptable

5 Mutability

  • sets are mutable.
  • To add elements to a set, use add() method.
my_set = {1, 2, 2}
my_set.add(5)
print(my_set)
my_set = {1, 2, 5}

  • To remove elements, use remove() method.
my_set = {1, 2, 5}
my_set.remove(2)
print(my_set)
my_set = {1, 5}

  • Multi-type:
my_multi_set = {'apple', 1, 2.5, True}

  • However, only immutable types are allowed inside sets!
print({'apple', 1, 2.5, [1, 2]})
TypeError: unhashable type: ‘list’
print({'apple', 1, 2.5, True, (1, 2)})
{(1, 2), 1, 2.5, ‘apple’}

  • Convert sets to lists or tuples and vice versa.
  • Take care: repeated elements from the list are removed when converting to a set.
list2set = set([1, 2, 3, 3, 3])
print(list2set)

set2list = list({1, 2, 3})
print(set2list)
{1, 2, 3}
[1, 2, 3]

tuple2set = set((1, 2, 3, 3, 3))
print(tuple2set)

set2tuple = tuple({1, 2, 3})
print(set2tuple)
{1, 2, 3}
(1, 2, 3)

6 in

  • Like lists, check if an element is inside a set:
print(3 in {1, 3, 2})
True
print(5 in {1, 3, 2})
False

7 Operations



String indexing in python
From: https://www.learnbyexample.org/python-set/

8 Union

  • With | or union().
set1 = {1, 2, 3}
set2 = {3, 4, 5}

# Union
union_result = set1 | set2
# or
union_result = set1.union(set2)
print(f'The union is: {union_result}')
The union is: {1, 2, 3, 4, 5}

Union operation in python

Union operation in python
From: https://www.learnbyexample.org/

9 Intersection

  • With & or intersection().
set1 = {1, 2, 3}
set2 = {3, 4, 5}

# Intersection
intersection_result = set1 & set2

# or
intersection_result = set1.intersection(set2)

print(f'The intersection is: {intersection_result}')
The intersection is: 3

Intersection operation in python

Intersection operation in python
From: https://www.learnbyexample.org/

10 Difference

  • With - or difference().
set1 = {1, 2, 3}
set2 = {3, 4, 5}

# Difference
difference_result = set1 - set2

# or
difference_result = set1.difference(set2)

print(f'The difference is: {difference_result}')
The difference is: {1, 2}

Difference operation in python

Difference operation in python
From: https://www.learnbyexample.org/

11 Symmetric difference

  • With ^ or symmetric_difference().
set1 = {1, 2, 3}
set2 = {3, 4, 5}

# Symmetric Difference
symmetric_difference_result = set1 ^ set2

# or
symmetric_difference_result = set1.symmetric_difference(set2)

print(f'The symmetric difference is: {symmetric_difference_result}')
The symmetric difference is: {1, 2, 4, 5}

Symmetric difference operation in python

Symmetric difference operation in python
From: https://www.learnbyexample.org/

12 Functions and methods

  • Common built-in functions: len(), sum(), max(), etc.
set1 = {1, 2, 3}

print(f'The length of my_set is {len(set1)}.')
print(f'The sum of my_set is {sum(set1)}.')
print(f'The max of my_set is {max(set1)}.')
The length of my_set is 3.
The sum of my_set is 6.
The max of my_set is 3.

  • Other common methods: issubset(), issuperset().
set1 = {1, 2, 3}
set2 = {3, 4, 5}
set3 = {3, 5}

print(f'Is set3 a subset of set1? {set3.issubset(set1)}')
print(f'Is set3 a subset of set2? {set3.issubset(set2)}')
print(f'Is set2 a superset of set3? {set2.issuperset(set3)}')
Is set3 a subset of set1? False
Is set3 a subset of set2? True
Is set2 a superset of set3? True

  • More methods: https://www.w3schools.com/python/python_ref_set.asp.

13 Update

# Update set1 with the union of set1 and set2.
# This modifies the content of set1.

set1.update(set2)
print(set1)
{1, 2, 3, 4, 5}

14 Iteration

  • The same as lists and tuples:
for element in {1, 2, 3}:
    print(element)
1
2
3

15 Comprehension

  • Similar to lists:
even_set = {i * 2 for i in range(5)}
print(even_set)
{0, 2, 4, 6, 8}

16 Example

Given a string, count the number of distinct words present in the string.

text = "one two three three two one go"

unique_words = set(text.split())
distinct_words = len(unique_words)

print(unique_words)
print(distinct_words)
{‘two’, ‘go’, ‘three’, ‘one’}
4

17 Exercises

17.1 Set operations

Given two sets, you can perform various operations to analyze their relationships. Each operation provides different insights into how the sets relate to one another. Given two sets, display their:

  • Union combines all unique elements from both sets.
  • Intersection finds elements that are present in both sets.
  • Difference identifies elements that are in the first set but not in the second.
  • Symmetric Difference includes elements that are in either of the sets but not in both.

Example 1

Input: set1 = {1, 2, 3, 4, 5}, set2 = {4, 5, 6, 7, 8}
Output: Union: {1, 2, 3, 4, 5, 6, 7, 8}
Intersection: {4, 5}
Difference: {1, 2, 3}
Symmetric Difference: {1, 2, 3, 6, 7, 8}

Example 2

Input: set1 = {10, 20, 30}, set2 = {30, 40, 50}
Output: Union: {10, 20, 30, 40, 50}
Intersection: {30}
Difference: {10, 20}
Symmetric Difference: {10, 20, 40, 50}

Example 3

Input: set1 = {1, 2}, set2 = {1, 2}
Output: Union: {1, 2}
Intersection: {1, 2}
Difference: set()
Symmetric Difference: set()

17.2 Membership

Given a set of integers and an element, check if the specified element is present in the set.

Example 1

Input: my_set = {1, 2, 3, 4, 5}
Input: element = 3
Output: True

Example 2

Input: my_set = {1, 2, 3, 4, 5}
Input: element = 6
Output: False

Example 3

Input: my_set = {‘apple’, ‘banana’, ‘cherry’}
Input: element = ‘banana’
Output: True

17.3 Sub and superset

Given two sets, determine if the first set is a subset of the second set, and simultaneously check if the second set is a superset of the first set. A set is considered a subset of another set if all elements of the first set are contained within the second set. Conversely, a set is a superset of another set if it contains all elements of the first set.

Example 1

Input: set1 = {1, 2, 3}
set2 = {1, 2, 3, 4, 5}
Output: Set1 is a subset of Set2: True
Output: Set2 is a superset of Set1: True

Example 2

Input: set1 = {1, 2, 6}
set2 = {1, 2, 3, 4, 5}
Output: Set1 is a subset of Set2: False
Output: Set2 is a superset of Set1: False

17.4 Unique elements

Given a list of elements, the task is to create a new list that contains only the unique elements from the original list. Use the set data structure to easily solve this problem.

Example 1

Input: my_list = [1, 2, 3, 2, 1, 4, 4, 5]
Output: [1, 2, 3, 4, 5]

Example 2

Input: my_list = ['apple', 'banana', 'apple', 'orange', 'banana']
Output: ['apple', 'banana', 'orange']

Example 3

Input: my_list = [True, False, True, True]
Output: [True, False]

17.5 Attendance

You have attendance lists for 3 different courses. Find students who assisted all classes.

Example

Input:
math = [“Alice”, “Bob”, “Charlie”, “John”, “Eve”, “Abbott”]
physics = [“Bob”, “Eve”, “Charlie”, “David”, “Alice”, “Susan”]
cs = [“Charlie”, “Abbott”, “Bob”, “David”, “Eve”]
Output: {‘Charlie’, ‘Eve’, ‘Bob’}

17.6 Disjoint sets

Given two sets, determine if they are disjoint, meaning they have no elements in common.

Example 1

Input: set1 = {1, 2, 3}
set2 = {4, 5, 6}
Output: Set1 and Set2 are disjoint: True

Example 2

Input: set1 = {1, 2, 3}
set2 = {3, 4, 5}
Output: Set1 and Set2 are disjoint: False

Example 3

Input: set1 = {'a', 'b', 'c'}
set2 = {'d', 'e', 'f'}
Output: Set1 and Set2 are disjoint: True

Example 4

Input: set1 = {1, 2, 3}
set2 = {2, 3, 4}
Output: Set1 and Set2 are disjoint: False

17.7 Missing Numbers

You’re given an integer n and a list of numbers that should contain all elements from 0 to n, in no specific order. However, some values have been lost. Display the missing elements in ascending order.

Example

Input: n = 10; rng = [4, 8, 2, 1, 3, 9]
Output: [0, 5, 6, 7, 10]

Back to top
Python: Tuples
Python: Dictionaries

License: CC0 1.0 Universal

Per aspera, ad astra

  • Edit this page
  • View source
  • Report an issue