CodeGym /Courses /Python SELF EN /Looping Through Set Elements

Looping Through Set Elements

Python SELF EN
Level 9 , Lesson 7
Available

7.1 The for Loop

Using loops to iterate through elements of a set is a common task in programming, especially when you need to process each element of a set.

To iterate over set elements in Python, the for loop is typically used. Since sets don't have a fixed order of elements, the for loop is perfect for iterating over set elements (because it uses the iterator mechanism).

Example:


my_set = {1, 2, 3, 4, 5}

for element in my_set:
    print(element)
        

Looks pretty simple – let's add a few practical examples:

Summing Set Elements

Let's consider an example where we sum all the elements of a set.


my_set = {1, 2, 3, 4, 5}
total = 0
            
for element in my_set:
    total += element
            
print("Total sum of set elements:", total)
            
        

Output:


Total sum of set elements: 15
        

In this example, we use a for loop to sequentially add each element of the my_set to the variable total, resulting in the total sum of all set elements.

Finding the Maximum Element

Now let's find the maximum element in a set.


my_set = {1, 2, 3, 4, 5}
max_element = None
            
for element in my_set:
    if max_element is None or element > max_element:
        max_element = element
            
print("Maximum set element:", max_element)
        

Output:


Maximum set element: 5
        

In this example, a for loop is used to iterate through all set elements and determine the maximum value.

Filtering Elements

Let's create a new set containing only the even numbers from the original set.


my_set = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
even_set = set()
            
for element in my_set:
    if element % 2 == 0:
        even_set.add(element)
            
print("Set of even numbers:", even_set)
            
        

Set of even numbers: {2, 4, 6, 8, 10}

In this example, a for loop is used to filter elements that meet a condition (being even) and add them to a new set even_set.

7.2 Using enumerate()

The enumerate() function returns an iterator that generates tuples consisting of an index and the corresponding element from the iterable object.

When working with sets, using enumerate() can be useful for obtaining indices of elements during iteration. However, since sets are unordered collections, the order of elements in each iteration is not guaranteed.

The enumerate() function works with sets just like it does with any other iterable objects.

Iteration with Indices

Using enumerate() to get indices of set elements during iteration.


my_set = {10, 20, 30, 40, 50}

for index, element in enumerate(my_set):
    print(f"Index: {index}, Element: {element}")
        

Possible output:


Index: 0, Element: 40
Index: 1, Element: 10
Index: 2, Element: 50
Index: 3, Element: 20
Index: 4, Element: 30
        

Saving Indices and Elements to a List

Consider an example where we save indices and set elements to a list for further processing.


my_set = {"apple", "banana", "cherry"}

indexed_elements = [(index, element) for index, element in enumerate(my_set)]
print(indexed_elements)
        

Possible output:


[(0, 'banana'), (1, 'cherry'), (2, 'apple')]
        

Processing Elements Using Their Indices

Consider an example where we perform a specific operation on set elements using their indices.


my_set = {1, 2, 3, 4, 5}
squared_elements = {}
            
for index, element in enumerate(my_set):
    squared_elements[index] = element ** 2
            
print(squared_elements)
            
        

Possible output:


{0: 16, 1: 1, 2: 25, 3: 4, 4: 9}
        

7.3 Using the while Loop

In principle, you can use the while loop when working with sets. For example, you can remove tasks (elements) from the set one by one until it's empty:


my_set = {"clean the house", "do the dishes", "buy bread"}
while len(my_set) > 0:
    task = my_set.pop()
    print(task)
        

This approach will work. Basically, you have a bunch of ways to work with sets of elements — use whichever you prefer.

2
Task
Python SELF EN, level 9, lesson 7
Locked
Indexing
Indexing
2
Task
Python SELF EN, level 9, lesson 7
Locked
Replacement
Replacement
Comments (1)
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION
GLEN Level 1, Melbourne, Australia
20 January 2025
In the solution for the task named "Replacement", isn't the line below going to potenitally cause issues because sets are unordered: fruits_list = list(fruits) fruits_list[index] = new_fruit # Potential issue? fruits = set(fruits_list)