Difference Between List and Set in Python

1. Introduction

In Python, lists and sets are both collection data types used to store multiple items. A list is an ordered collection which means it stores elements in the order you add them and allows duplicate elements. A set, however, is an unordered collection that does not allow duplicates. The choice between a list and a set depends on the specific requirements of your application.

2. Key Points

1. Ordering: Lists are ordered, sets are unordered.

2. Duplicates: Lists allow duplicates, sets do not.

3. Syntax: Lists use square brackets [], sets use curly braces {} or the set() function.

4. Mutability: Both lists and sets are mutable.

5. Performance: Sets generally offer faster operations for checking if an item is contained in the set.

3. Differences

Characteristic List Set
Ordering Ordered Unordered
Duplicates Allows duplicates No duplicates allowed
Syntax Square brackets [] Curly braces {} or set()
Mutability Mutable Mutable

4. Example

# Example of a List
my_list = [1, 2, 2, 3]

# Example of a Set
my_set = {1, 2, 2, 3}


List Output:
[1, 2, 2, 3]
Set Output:
{1, 2, 3}


1. The list my_list keeps all elements, including duplicates.

2. The set my_set automatically removes the duplicate '2'.

5. When to use?

- Use lists when you need to maintain the order of elements, allow duplicates, or when you have a small number of elements where performance is not a major concern.

- Use sets when you need to ensure elements are unique, perform fast membership tests, or when you need to perform mathematical set operations like union, intersection, and difference.