7.1 Vòng lặp for
Sử dụng vòng lặp để duyệt qua các phần tử của tập hợp là một nhiệm vụ phổ biến trong lập trình, đặc biệt khi cần xử lý từng phần tử của tập hợp.
Để duyệt qua các phần tử của tập hợp trong Python, thường dùng vòng lặp for
. Vì tập hợp không có thứ tự cố định cho các phần tử, vòng lặp for rất thích hợp để duyệt qua các phần tử của tập hợp (vì sử dụng cơ chế iterators).
Ví dụ:
my_set = {1, 2, 3, 4, 5}
for element in my_set:
print(element)
Trông rất đơn giản – hãy thêm một vài ví dụ thực tiễn:
Tính tổng các phần tử của tập hợp
Xem xét ví dụ, trong đó chúng ta tính tổng tất cả các phần tử của tập hợp.
my_set = {1, 2, 3, 4, 5}
total = 0
for element in my_set:
total += element
print("Tổng các phần tử của tập hợp:", total)
Xuất ra:
Tổng các phần tử của tập hợp: 15
Trong ví dụ này, chúng ta sử dụng vòng lặp for
để lần lượt cộng từng phần tử của my_set
vào biến total
, kết quả là tổng của tất cả các phần tử trong tập hợp.
Tìm phần tử lớn nhất
Bây giờ hãy tìm phần tử lớn nhất trong tập hợp.
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("Phần tử lớn nhất của tập hợp:", max_element)
Xuất ra:
Phần tử lớn nhất của tập hợp: 5
Trong ví dụ này, vòng lặp for
được sử dụng để duyệt qua tất cả các phần tử của tập hợp và xác định giá trị lớn nhất.
Lọc các phần tử
Hãy tạo một tập hợp mới chỉ chứa các số chẵn từ tập hợp ban đầu.
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("Tập hợp số chẵn:", even_set)
Tập hợp số chẵn: {2, 4, 6, 8, 10}
Trong ví dụ này, vòng lặp for
được sử dụng để lọc các phần tử thỏa mãn điều kiện (chẵn), và thêm chúng vào tập hợp mới even_set
.
7.2 Sử dụng enumerate()
Hàm enumerate()
trả về một iterator, tạo ra các cặp bao gồm chỉ mục và phần tử tương ứng từ đối tượng có thể lặp.
Khi làm việc với các tập hợp, việc sử dụng enumerate()
có thể hữu ích để lấy chỉ mục của các phần tử trong quá trình duyệt. Tuy nhiên, vì tập hợp là các bộ sưu tập không có thứ tự, thứ tự các phần tử trong mỗi lần lặp không được đảm bảo.
Hàm enumerate()
hoạt động với các tập hợp cũng như với bất kỳ đối tượng có thể lặp nào khác.
Duyệt cùng với chỉ mục
Sử dụng enumerate()
để lấy chỉ mục của các phần tử tập hợp trong quá trình lặp.
my_set = {10, 20, 30, 40, 50}
for index, element in enumerate(my_set):
print(f"Chỉ mục: {index}, Phần tử: {element}")
Kết quả có thể:
Chỉ mục: 0, Phần tử: 40
Chỉ mục: 1, Phần tử: 10
Chỉ mục: 2, Phần tử: 50
Chỉ mục: 3, Phần tử: 20
Chỉ mục: 4, Phần tử: 30
Lưu trữ chỉ mục và phần tử vào danh sách
Xem xét ví dụ, trong đó chúng ta lưu trữ chỉ mục và phần tử tập hợp vào một danh sách để xử lý sau này.
my_set = {"apple", "banana", "cherry"}
indexed_elements = [(index, element) for index, element in enumerate(my_set)]
print(indexed_elements)
Kết quả có thể:
[(0, 'banana'), (1, 'cherry'), (2, 'apple')]
Xử lý các phần tử sử dụng chỉ mục của chúng
Xem xét ví dụ, trong đó chúng ta thực hiện một số thao tác nhất định trên các phần tử tập hợp, sử dụng chỉ mục của chúng.
my_set = {1, 2, 3, 4, 5}
squared_elements = {}
for index, element in enumerate(my_set):
squared_elements[index] = element ** 2
print(squared_elements)
Kết quả có thể:
{0: 16, 1: 1, 2: 25, 3: 4, 4: 9}
7.3 Sử dụng vòng lặp while
Thực tế khi làm việc với các tập hợp, cũng có thể sử dụng vòng lặp while
. Ví dụ, có thể lấy từng công việc (phần tử) ra khỏi tập hợp, trong khi nó không còn trống:
my_set = {"dọn dẹp nhà cửa", "rửa bát", "mua bánh mì"}
while len(my_set) > 0:
task = my_set.pop()
print(task)
Cách tiếp cận này sẽ hoạt động. Nói chung, bạn có nhiều cách để làm việc với một loạt phần tử – hãy chọn bất kỳ cách nào bạn muốn.
GO TO FULL VERSION