Differences Between List, Tuple, Set and Dictionary in Python

Learn via video course
FREE
View all courses
Python Course for Beginners With Certification: Mastering the Essentials
Python Course for Beginners With Certification: Mastering the Essentials
by Rahul Janghu
1000
4.90
Start Learning
Python Course for Beginners With Certification: Mastering the Essentials
Python Course for Beginners With Certification: Mastering the Essentials
by Rahul Janghu
1000
4.90
Start Learning
Topics Covered

List vs Tuple vs Set vs Dictionary in Python - Quick Comparison Table

In Python, lists, tuples, sets, and dictionaries are built-in collections that provide different ways to store and organize data.

While they may look similar, each built-in collection has different characteristics related to ordering, mutability, duplication handling, and data access.

To understand the difference between them more clearly, we have prepared this table including key aspects and differentiating factors:

FeatureListTupleSetDictionary
Symbol[](){}{key: value}
OrderedYesYesNoYes (Python 3.7 and above)
MutableYesNo
Allows DuplicatesKeys must be unique (values can repeat)
Access MethodIndex-basedIndex-basedNo indexingKey-based
Best Use CaseStoring dynamic and ordered collectionsStoring fixed or constant dataStoring unique elements and performing set operationsStoring data in a key-value mapping for fast retrieval
As we can see:
  • Lists are commonly used when data needs to be modified frequently.

  • Tuples are suitable when data should remain constant after creation.

  • Sets are useful when working with unique elements or performing mathematical operations like union and intersection.

  • Dictionaries are widely used when data must be stored in key-value pairs for quick lookup and efficient data organization; unlike lists, dictionaries are indexed by keys rather than positions.

What Are List, Tuple, Set, and Dictionary in Python?

Lists, tuples, sets, and dictionaries are built-in data structures in Python that help store and manage collections of data efficiently. A list is an ordered and mutable collection that can store multiple values and allows duplicate elements; an empty list is created using square brackets []. A tuple is also an ordered collection that can hold multiple values, but it is immutable, meaning you cannot modify elements of a tuple after creation. A set is an unordered collection that can store multiple values, contains only unique elements, and does not allow duplicates. A dictionary stores data in key-value pairs, where each key is unique and used to access its corresponding single value. These four data types are extremely important in Python and are widely used based on requirements such as mutability, uniqueness, and data retrieval methods.

What Are the 4 Data Structures in Python?

Python provides four primary built-in data structures that help store and organize data efficiently: lists, tuples, sets, & dictionaries. These built-in collections are commonly used to group data for efficient organization, retrieval, and analysis—such as categorizing or aggregating information based on specific keys in a dictionary. Each of these structures is designed to solve different programming needs depending on whether data needs to be modified, stored uniquely, maintained in order, or accessed using keys.

Below, we have mentioned detailed explanations for each with technical definitions and examples:

1. List in Python

Lists are one of the most commonly used data structures in Python because they provide flexibility in storing and modifying data. They are suitable when the collection needs to grow, shrink, or change during program execution.

Definition: A list in Python is an ordered and mutable collection of elements that allows duplicate values. Lists in Python are similar to arrays in other languages like C++ or Java, but unlike arrays, Python lists can store elements of different data types.

Syntax: list_name = [element1, element2, element3]

Example:

To remove elements, Python provides several methods. The remove() method removes a specified item from the list, while the pop() method removes an item at a specified index.

Lists are commonly used when:

  • Data needs frequent modification

  • The order of elements is important

  • Duplicate values are allowed

2. Tuple in Python

Tuples are similar to lists but are designed for situations where data should remain unchanged after creation. Because tuples are immutable, they also provide performance benefits in certain scenarios.

Definition: A tuple in Python is an ordered and immutable collection of elements.

Syntax: tuple_name = (element1, element2, element3)

Example:

Tuples are typically used when:

  • Data must remain constant

  • Fixed collections, like coordinates or configuration values, are stored

  • A slight performance improvement is desired due to immutability

3. Set in Python

Sets are designed to handle collections of unique elements. A python set is a built-in data structure that is especially useful when eliminating duplicate values or performing mathematical set operations such as union, intersection, difference, and symmetric difference.

Definition: A python set in Python is an unordered and mutable collection that stores only unique elements.

Syntax: set_name = {element1, element2, element3}

Example:

To check if a specified value exists in a set, use the in keyword. For example, if value in set_name: will return True if the value is present.

Sets are commonly used when:

  • Duplicate elements need to be removed automatically

  • Membership testing for a specified value is required

  • Mathematical operations like union or intersection are performed

4. Dictionary in Python

Dictionaries are used when data needs to be stored in a structured manner using keys and values. They provide fast and efficient data retrieval, which makes it quite a convenient data structure in Python. Elements in dictionaries are stored as key-value pairs for efficient access.

Definition: A dictionary in Python is a mutable collection that stores data in key-value pairs, where each key is unique.

Syntax: dictionary_name = {key1: value1, key2: value2}
Dictionary entries are key value pairs separated by colons and enclosed in curly braces.

Example:

You can retrieve all the keys from a dictionary using the keys() method: student.keys().
To get all the values, use the values() method: student.values().

Dictionaries are generally used when:

  • Data needs to be accessed using identifiers or labels

  • Fast lookup and mapping of related values is required

  • Structured or relational data representation is needed

  • Dictionaries are often used to represent database records by mapping column names to values

Dictionaries do not allow duplicate elements for keys, unlike lists or tuples which can contain duplicate elements.

Difference Between List, Tuple, Set, and Dictionary in Python (With Example)

The difference between list, tuple, set, and dictionary in Python lies in how they store data, allow modifications, maintain order, and handle duplicates. Lists and tuples store ordered data, meaning they maintain the sequence in which elements are added, and both allow duplicate elements. Sets store unique, unordered elements and do not allow duplicates. Dictionaries store ordered data as key-value pairs (from Python 3.7+), where keys must be unique—duplicate elements in dictionaries are not allowed for keys, but values can be duplicated.

Want to understand how all 4 can work together? Here’s how it works!

Example Code:

So What Happens?

  • List: Preserves order and allows duplicate values. The duplicate value 3 appears twice.

  • Tuple: Similar to a list in ordering and duplicate handling, but cannot be modified after creation.

  • Set: Automatically removes duplicate elements, so the repeated value 3 appears only once. The order of elements may vary.

  • Dictionary: Stores ordered data using unique keys that map to specific values, making data retrieval efficient. Duplicate keys are not allowed; if a key is repeated, only the last value is kept.

Difference Between List and Dictionary in Python

Lists and dictionaries in Python are both mutable data structures, but they differ significantly in how data is stored and accessed. A list stores elements in a sequential order and uses indexing, making it ideal for ordered data. In contrast, a dictionary stores data as key-value pairs, where elements in dictionaries are accessed using unique keys. As of Python 3.7+, dictionaries also maintain the insertion order of their elements, allowing them to store ordered data.

List vs Dictionary - A Comparison Table

AspectListDictionary
Data StorageStores elements in sequenceStores data as key-value pairs
Access MethodIndex-basedKey-based
OrderMaintains insertion orderMaintains insertion order (Python 3.7+)
DuplicatesAllows duplicate elementsKeys must be unique, values can repeat
SyntaxUses square brackets []Uses curly brackets {} with key-value mapping
Use CaseManaging ordered collections of dataMapping related data using identifiers
Lists are generally used for ordered collections where elements are accessed using numerical positions. They are useful when data needs to be modified frequently or when duplicate values are allowed.

Dictionaries are used when data must be associated with meaningful identifiers. Instead of numeric indexing, dictionaries allow values to be accessed using unique keys, making them efficient for data lookup and structured data storage.

Difference Between Set and Dictionary in Python

Sets and dictionaries in Python both use curly brackets {}, which often confuses beginners. However, they serve different purposes.

A set stores unique elements, while a dictionary stores key-value pairs where each key maps to a value.

Set vs Dictionary - A Comparison Table

AspectSetDictionary
Data StorageStores unique elementsStores key-value pairs
Access MethodDoes not support indexingUses keys to access values
DuplicatesDoes not allow duplicate elementsKeys must be unique, values can repeat
OrderUnordered collectionMaintains insertion order (Python 3.7+)
Syntax{element1, element2}{key: value}
Use CaseRemoving duplicates and performing set operationsMapping and retrieving data efficiently
Sets are commonly used when duplicate values need to be removed or when performing mathematical operations like union, intersection, and difference. They focus only on storing unique elements and do not provide indexing or key-based access.

Dictionaries are designed to store relationships between keys and values. They are widely used when structured data needs to be stored and retrieved quickly using identifiers.

Mutable vs Immutable in Python Data Structures

In Python, data structures are categorized based on whether their contents can be modified after creation. This concept is known as mutability. Understanding whether a data structure is mutable or immutable is very important since it can help you choose the correct structure for storing and managing data safely and efficiently.

A mutable data structure allows changes such as adding, removing, or updating elements after it is created. For example, methods like remove() or pop() can be used to remove elements from lists, sets, and dictionaries—these methods remove items by value, index, or key, depending on the data structure. Whereas, an immutable data structure does not allow any modification once it is defined. For instance, you cannot modify elements of a tuple after creation; tuples are fixed and do not support item assignment or removal.

Mutability of List, Tuple, Set, and Dictionary

Data StructureMutable
ListYes
Tuple
SetYes
DictionaryYes
It Basically Means,
  • List: Lists are mutable, which means elements can be added, removed, or updated. This flexibility makes lists suitable for dynamic collections where data changes frequently.

  • Tuple: Tuples are immutable, meaning their elements cannot be modified after creation. Tuples are often used when data needs to remain constant or protected from accidental changes.

  • Set: Sets are mutable, allowing elements to be added or removed. However, each element inside a set must be immutable because sets store only unique and hashable values.

  • Dictionary: Dictionaries are mutable and allow modification of values, addition of new key-value pairs, and deletion of existing entries. However, dictionary keys must always be immutable.

Difference Between (), [], and {} in Python

In Python, brackets and braces are used to define different data structures. The symbols [], (), and {} represent lists, tuples, sets, and dictionaries depending on how they are used. Symbol Meaning in Python

  • [] - List

  • () - Tuple

  • {} - Set or Dictionary

Square Brackets [] - List

Square brackets are used to create lists. Lists store ordered and mutable collections of elements and allow duplicate values.

Example:

numbers = [1, 2, 3, 4]

You can also create an empty list using square brackets:

empty_list = []

Lists are commonly used when data needs to be modified frequently, and the order of elements must be maintained.

Parentheses () - Tuple

Parentheses are used to create tuples. Tuples store ordered collections of elements but are immutable, meaning their contents cannot be changed after creation.

Example:

coordinates = (10, 20, 30)

Tuples are generally used for storing constant or fixed data.

Curly Braces {} - Set or Dictionary

Curly braces can represent either a set or a dictionary, depending on how data is defined inside them.

Set Example:

unique_numbers = {1, 2, 3, 4}

Sets store unordered collections of unique elements and automatically remove duplicates.

Dictionary Example

student = {“name”: “Rahul”, “age”: 20}

print(student[“name”])

Dictionaries store data in key-value pairs where each key uniquely identifies a value.

Important Note

  • {} creates an empty dictionary.

  • To create an empty set, the set() function must be used.

Example:

empty_dict = {}

empty_set = set()

Understanding the difference between (), [], and {} in Python helps developers correctly identify and use lists, tuples, sets, and dictionaries based on their syntax and functionality.

When to Use List vs Tuple vs Set vs Dictionary (Beginner Guide)

Choosing between a list, tuple, set, and dictionary in Python depends on how data needs to be stored, modified, or accessed. Each data structure is designed for specific use cases, and selecting the correct one improves program efficiency and readability. Dictionaries are especially useful when you need to group data by keys, allowing for efficient aggregation or categorization based on those keys.

Use List When

  • Data needs to be modified frequently

  • The order of elements must be maintained

  • Duplicate values are allowed

  • You need indexing to access elements

Lists are commonly used for dynamic collections such as storing user inputs, managing items in a sequence, or handling datasets that change during execution.

Use Tuple When

  • Data should remain constant after creation

  • You want to protect values from modification

  • Slight performance improvement is desired

  • The collection represents fixed information, such as coordinates or configuration values.

Tuples are ideal for storing read-only data and ensuring data integrity.

Use Set When

  • Duplicate elements need to be removed automatically

  • You need to perform mathematical operations such as union, intersection, or difference

  • Fast membership testing is required

  • The order of elements is not important

Sets are useful when working with unique values or filtering duplicate data efficiently.

Use Dictionary When

  • Data needs to be stored in key-value pairs

  • Fast data retrieval using identifiers is required

  • You need to represent structured or relational data

  • You want to map related information, such as names with values or labels with properties

Dictionaries are mainly used for storing user details, configuration settings, and database-like mappings.

What is list tuple set dictionary in Python?

Lists, tuples, sets, and dictionaries are built-in Python data structures used to store collections of data. Lists store ordered and mutable elements, tuples store ordered but immutable elements, sets store unique unordered elements, and dictionaries store data as key-value pairs for efficient data retrieval and organization.

What are the 4 data structures in Python?

The four primary built-in data structures in Python are list, tuple, set, and dictionary. Lists and tuples store ordered collections, sets store unique elements, and dictionaries store key-value pairs. Each structure serves different purposes based on requirements such as mutability, uniqueness, ordering, and data access methods.

What is a list vs tuple vs set?

A list is an ordered and mutable collection that allows duplicates. A tuple is ordered but immutable, meaning its elements cannot be changed. A set is an unordered collection that stores only unique elements and automatically removes duplicates, making it useful for filtering and membership testing.

What is the difference between () [] and {} in Python?

In Python, [] is used to create lists, () is used to create tuples, and {} is used to create sets or dictionaries. Curly braces represent sets when storing elements and dictionaries when storing key-value pairs. An empty {} creates a dictionary, while an empty set requires set().