How to convert a list to a set in Python? Lists and sets both are built-in data types of Python and they can store collections of elements. However, there are some key differences between them hence, sometimes you would be required to convert list to set.
A list is an ordered collection of elements so, we can add, remove, modify, and slicing elements in a list by using its position/index order. It allows duplicate elements. Sets are a collection of unique elements, similar to a list or a tuple, but with some key differences. Sets do not allow duplicates, and you can perform various mathematical operations on sets such as union, intersection, and difference easily.
You can convert a list to a set in python using many ways, for example, by using the set()
, for
loop, set comprehension, and dict.fromkeys()
functions. In this article, I will explain how to convert a list to a set in python by using all these methods with examples.
1. Quick Examples of Converting List to Set
If you are in a hurry, below are some quick examples of how to convert a list to a set.
# Quick examples of convert list to set
# Initialize list
lists = [5, 2, 3, 4, 3, 5, 4, 6]
# Example 1: Convert the list to a set
# Using set()
myset = set(lists)
# Example 2: Convert list to set
# Using for loop
myset = set()
for item in lists:
myset.add(item)
# Example 3: Convert list to set
# Using set comprehension
myset = {item for item in lists}
# Example 4: Convert list to set
# Using dict.fromkeys() method
myset = set(dict.fromkeys(lists))
2. Difference Between List and Set
List | Set |
A list data structure in many programming languages, such as Python, does allow duplicate elements. | A set data structure in many programming languages, such as Python, does not allow duplicate elements. |
A list is an ordered collection of elements, which means that the elements in the list are stored in a specific order and can be accessed using their position or index in the list. | A set is an unordered collection of elements, which means that the elements in a set have no specific order and cannot be accessed using their position or index. |
The elements in a list are enclosed in square brackets [ ] | The elements in curly brackets { } denote a set. |
A list data structure to implement various other data structures, including Array List, LinkedList, Vector, and Stack. | A set data structure to implement various other data structures, including HashSet and LinkedHashSet. |
One of the main advantages of using a list data structure is that it allows you to modify its elements by replacing or updating them. | In most programming languages, including Python, elements in a set cannot be altered, modified, or replaced directly. |
3. Convert List to Set Using Python set() Method
You can convert the list to a set using the set()
built-in function, This function takes the list as an argument and converts it to the set. Note that in this conversion process, if List has any duplicate values they will be removed as Set can have only unique values.
For example, let’s take a list that contains integers and strings and pass it into set()
function to convert the list into set. The resulting set contains only the unique elements of the list, in random order. the integer 12
only appears once in the set, even though it appears twice in the original list.
# Initialize list
lists = [12, 32 , 6, 12, "sparkby","examples"]
print("List:", lists)
# Convert the list to a set using set()
myset = set(lists)
print("Set:", myset)
Yields below output.
As you can see, from the above code the list contains a ’12’ integer two times but in our resulting set ’12’ has appeared only one time.
4. Convert List to Set Using For Loop
You can also convert a list to a set using a for loop in Python. In this example, first, create a list and an empty set. Then, iterate the given list using for
loop, for every iteration, one item from the list is added to the empty set using the add() method.
Note that using the set()
function directly is more concise and is the preferred way to convert a list to a set in Python. The use of a for
loop in this context might be less efficient and is less idiomatic.
# Initialize the list & set
lists = [5, 2, 3, 4, 3, 5, 4, 6]
myset = set()
print("List:", lists)
# Convert list to set
# Using for loop
for item in lists:
myset.add(item)
print("Set:", myset)
Yields below output.
5. Convert List to Set Using Set Comprehension
You can use set comprehension to convert a list to a set in Python. set comprehension is a concise way to create a set. Let’s use set comprehension over the given list to convert it to a set with unique random values. For instance, {item for item in lists}
is a set comprehension that creates a set by iterating over each element in lists
. The resulting set, myset
, will contain the unique elements from the original list.
Note that the curly braces {}
are used to define the set comprehension, and the for
loop inside the braces defines the iteration. The resulting set myset
will contain only unique elements from the original list.
# Convert list to set
# Using set comprehension
lists = [5, 2, 3, 4, 3, 5, 4, 6]
myset = {item for item in lists}
print("List:", lists)
print("Set:", myset)
# Output:
# List: [5, 2, 3, 4, 3, 5, 4, 6]
# Set: {2, 3, 4, 5, 6}
6. Using dict.fromkeys() Method
Alternatively, using the dict.fromkeys() method of dictionary to convert a list to a set. However, it can be simplified by removing the intermediate step of converting the dictionary keys back to a list before creating the set.
# Convert list to set
# Using dict.fromkeys() method
lists = [5, 2, 3, 4, 3, 5, 4, 6]
myset = set(dict.fromkeys(lists))
print(myset)
Yields the same output as above.
Frequently Asked Questions on Convert List to Set in Python
You can convert a list to a set in Python using either the set()
function, a set comprehension, or the dict.fromkeys()
method.
Converting the list to a set is a common and effective way to remove duplicates. You can use set()
or set comprehension for this purpose.
The set()
function directly converts a list to a set, removing duplicates. On the other hand, set(my_dict.keys())
involves creating a dictionary with unique keys from the list using dict.fromkeys()
and then extracting those keys. The latter approach can be less efficient and is generally not recommended for this specific conversion.
You can use the set()
function with any iterable in Python, not just lists. The set()
function accepts any iterable object, including tuples, strings, and other iterable types.
Using set()
is more concise, direct, and idiomatic for this specific task. dict.fromkeys()
is more commonly used for creating dictionaries, and using it to convert a list to a set might be less intuitive.
Conclusion
In this article, I have explained convertion of list to set can be done by using the set()
, for
loop, set comprehension, and dict.fromkeys()
functions. You can use any of the methods as per your need.
Happy Learning !!
Related Articles
- How to initialize Set in Python?
- How to subtract two sets in Python?
- How to check Python Version?
- Python set clear() method
- Convert List to String in Python
- Python Append List to a List Example
- How to convert set to string in Python?
- Join two or multiple sets in Python
- Python set comprehension examples
- Remove set element if exists in Python
- Python Print List without Brackets
- Find the length of the set in Python
- Python Remove None From List
- How to Append Dictionary to List in Python?
- How to check two sets are equal in Python?
- How to Append or Add Multiple Values to Set in Python?