PHP
Python

Trang chủ

Tìm hiểu về vòng lặp với set trong Python

Ngôn ngữ Python là một ngôn ngữ lập trình đa mục đích, nổi tiếng với cú pháp dễ đọc, dễ học và tính ứng dụng cao. Trong lĩnh vực phát triển web, Python thường được sử dụng thông qua các framework như Django và Flask để xây dựng các ứng dụng web mạnh mẽ, bảo mật và dễ mở rộng. Trong chuyên mục này, Vietnix không chỉ cung cấp kiến thức nền tảng về ngôn ngữ Python mà còn hướng dẫn chi tiết cách xây dựng các ứng dụng web thực tế, sử dụng các framework phổ biến và áp dụng các kỹ thuật tiên tiến. Vietnix cam kết liên tục cập nhật những bài viết mới nhất về các tính năng mới của Python, các thư viện hỗ trợ hữu ích và những phương pháp tốt nhất, giúp bạn khai thác tối đa sức mạnh của Python và hoàn thiện kỹ năng lập trình web của mình.
html
CSS
javascript
sql
python
php
c
c++
bootstrap
react
mysql
reactjs
vuejs
Javascript Tutorials
25/02/2025
13 phút đọc
Theo dõi Vietnix trên

Tìm hiểu về vòng lặp với set trong Python

Khi làm việc với set, đôi khi chúng ta cần duyệt qua các phần tử bên trong để thực hiện các thao tác khác nhau. Bài viết này sẽ giới thiệu một phần các phương pháp thực hiện vòng lặp với set trong Python, từ cách sử dụng vòng lặp for, vòng lặp while, set comprehension, hàm enumerate() và phương thức add().

Các điểm chính

Đọc xong bài viết, bạn sẽ:

  • Làm chủ các phương pháp lặp qua set: Bạn sẽ học được cách sử dụng các vòng lặp (for, while), set comprehension và hàm enumerate() để truy xuất và thao tác với các phần tử trong set.
  • Nắm vững cú pháp và cách dùng từng loại vòng lặp: Bạn sẽ được cung cấp cú pháp rõ ràng và ví dụ minh họa cụ thể cho từng loại vòng lặp.
  • Ứng dụng vòng lặp set vào thực tế: Các ví dụ trong bài viết sẽ giúp bạn hình dung được cách sử dụng vòng lặp với set trong các bài toán thực tế.
  • Nắm được phương thức add(): Bạn có thể đề cập đến một cách duyệt phần tử set bằng phương thức add() này như một phương thức cộng thêm giúp bài viết phong phú hơn.
  • Tìm hiểu về dịch vụ VPS Vietnix – Linh hoạt & tùy chỉnh theo nhu cầu.

Vòng lặp với set trong Python

Vòng lặp với set trong Python đề cập đến việc duyệt qua từng phần tử trong một set. Sau khi truy cập từng phần tử, chúng ta có thể thực hiện các thao tác cần thiết trên phần tử đó. Các thao tác này có thể bao gồm in các phần tử, thực hiện các phép toán có điều kiện, lọc các phần tử,…

Vòng lặp với set trong Python đề cập đến việc duyệt qua từng phần tử trong một set
Vòng lặp với set trong Python đề cập đến việc duyệt qua từng phần tử trong một set

Khác với listtuple, set là các tập hợp không có thứ tự, vì vậy các phần tử sẽ được truy cập theo một thứ tự bất kỳ. Bạn có thể sử dụng vòng lặp for để duyệt qua các phần tử trong một set.

Duyệt qua phần tử của set bằng vòng lặp for

Trong vòng lặp for, bạn có thể truy cập từng phần tử trong chuỗi (hoặc set trong trường hợp này) bằng cách sử dụng một biến. Biến này sẽ lần lượt nhận giá trị của từng phần tử, cho phép bạn thực hiện các thao tác hoặc xử lý logic dựa trên giá trị của phần tử đó. Ta hoàn toàn có thể sử dụng vòng for để thực hiện vòng lặp với set trong Python

Cú pháp

Dưới đây là cú pháp cơ bản để duyệt qua các phần tử trong một set sử dụng vòng lặp for trong Python:

for phần_tử in tên_set:
    # Khối lệnh để thực thi

Ví dụ

Trong ví dụ sau, ta sử dụng vòng lặp for để duyệt qua từng phần tử trong set có tên my_set và in từng phần tử ra màn hình:

# Khai báo một set với các loại trái cây
trai_cay = {"táo", "chuối", "cam", "xoài", "dâu"}

# Dùng vòng lặp for để duyệt qua từng loại trái cây
for qua in trai_cay:
    # In ra từng loại trái cây
    print("Trái cây:", qua)

Khi chạy đoạn code trên, kết quả trên màn hình sẽ là (thứ tự có thể khác do set không duy trì thứ tự):

Trái cây: chuối
Trái cây: táo
Trái cây: cam
Trái cây: xoài
Trái cây: dâu

Giải thích:

  • trai_cay = {"táo", "chuối", "cam", "xoài", "dâu"}: Khởi tạo một set có tên trai_cay, set này chứa các chuỗi là tên của các loại trái cây.
  • for qua in trai_cay:: Bắt đầu vòng lặp for. Với mỗi lần lặp, biến qua sẽ lần lượt nhận giá trị là từng phần tử của trai_cay.
  • print("Trái cây:", qua): Trong mỗi lần lặp, câu lệnh này sẽ in ra chuỗi “Trái cây:” kèm theo giá trị hiện tại của biến qua (tức là tên của một loại trái cây).

Duyệt qua các phần tử của set với vòng lặp while

Chúng ta có thể thực hiện vòng lặp với set trong Python sử dụng vòng lặp while bằng cách chuyển đổi set thành một đối tượng iterator và sau đó lặp qua từng phần tử cho đến khi iterator duyệt hết set.

Trong ví dụ dưới đây, chúng ta sẽ lặp qua một set bằng cách sử dụng một iterator và vòng lặp while. Khối “try” lấy và in ra từng phần tử, trong khi khối “except StopIteration” sẽ ngắt vòng lặp khi không còn phần tử nào để lấy nữa:

# Khai báo một set với nhiều phần tử
my_set = {1, 2, 3, 4, 5}

# Chuyển set thành một iterator
set_iterator = iter(my_set)

# Lặp qua từng phần tử trong set sử dụng vòng lặp while
while True:
   try:
      # Lấy phần tử tiếp theo từ iterator
      phan_tu = next(set_iterator)
      # Thực hiện các thao tác trên mỗi phần tử
      print("Phần tử:", phan_tu)
   except StopIteration:
      # Nếu StopIteration xảy ra (hết phần tử), ngắt vòng lặp
      break

Kết quả của đoạn mã trên như sau:

Phần tử: 1
Phần tử: 2
Phần tử: 3
Phần tử: 4
Phần tử: 5

Giải thích code chi tiết:

  • my_set = {1, 2, 3, 4, 5}: Dòng này tạo một set tên là my_set chứa các số nguyên từ 1 đến 5.
  • set_iterator = iter(my_set): Hàm iter() chuyển đổi set my_set thành một đối tượng iterator, và đối tượng này được gán cho biến set_iterator. Iterator cho phép ta duyệt qua các phần tử của set.
  • while True:: Đây là vòng lặp while với điều kiện luôn đúng (True), nghĩa là về lý thuyết vòng lặp này sẽ chạy mãi mãi. Tuy nhiên, chúng ta có cơ chế để dừng vòng lặp này.
  • try...except StopIteration:: Đây là cấu trúc try...except dùng để xử lý ngoại lệ (exception). Cụ thể trong trường hợp này là xử lý ngoại lệ StopIteration.
  • phan_tu = next(set_iterator): Bên trong khối try, hàm next() được gọi với đối số set_iterator. Hàm next() trả về phần tử tiếp theo trong iterator. Lần đầu tiên được gọi, nó sẽ trả về phần tử đầu tiên. Lần thứ hai, trả về phần tử thứ hai, và cứ tiếp tục như vậy. Khi đến cuối, nếu next được gọi mà không còn phần tử, một ngoại lệ StopIteration sẽ được sinh ra.
  • print("Phần tử:", phan_tu): Nếu lấy được phần tử thành công, lệnh print sẽ in ra giá trị của phan_tu.
  • except StopIteration: break: Khi ngoại lệ StopIteration xảy ra (có nghĩa là đã duyệt qua tất cả phần tử trong set), khối except này được thực hiện, và lệnh break được gọi. Lệnh break có tác dụng kết thúc vòng lặp while.

Duyệt phần tử set với set comprehension

Chúng ta có thể duyệt qua sử dụng set comprehension bằng cách định nghĩa một biểu thức set comprehension bên trong cặp dấu ngoặc nhọn {} và chỉ định logic của vòng lặp và điều kiện trong biểu thức. Cú pháp như sau:

set_ket_qua = {bieu_thuc for phan_tu in doi_tuong_iterable if dieu_kien}

Trong đó:

  • bieu_thuc: Một biểu thức để tính toán cho mỗi phan_tu trong doi_tuong_iterable.
  • phan_tu: Một biến đại diện cho mỗi phần tử trong doi_tuong_iterable.
  • doi_tuong_iterable: Một tập hợp để duyệt qua (ví dụ: list, tuple, set).
  • dieu_kien: Một điều kiện tùy chọn để lọc các phần tử được đưa vào set kết quả.

Trong ví dụ này, chúng ta sẽ dùng set comprehension để tạo một set chứa bình phương của các số chẵn trong một list ban đầu, đồng thời những số đó phải lớn hơn 5.

# List ban đầu
danh_sach_so = [2, 4, 6, 8, 10, 3, 5, 7, 9]

# Set comprehension để tạo set chứa bình phương của các số chẵn lớn hơn 5
binh_phuong_so_chan_lon_hon_5 = {x**2 for x in danh_sach_so if x % 2 == 0 and x > 5}

# In set kết quả
print(binh_phuong_so_chan_lon_hon_5)

Khi chạy đoạn code trên, kết quả hiển thị sẽ như sau:

{64, 100}

Giải thích:

  • danh_sach_so:list ban đầu chứa các số nguyên.
  • {x**2 for x in danh_sach_so if x % 2 == 0 and x > 5}: là biểu thức “set comprehension”.
  • x**2: Đây là biểu thức sẽ được tính toán (bình phương của x).
  • for x in danh_sach_so: Vòng lặp duyệt qua từng phần tử x trong danh_sach_so.
  • if x % 2 == 0 and x > 5: Điều kiện: chỉ những số x nào chia hết cho 2 (số chẵn) và lớn hơn 5 mới được xét.
  • Kết quả, chỉ có 8 và 10 là hai số trong danh sách gốc thỏa mãn hai điều kiện: chẵn (chia hết cho 2), và lớn hơn 5. Do vậy, set kết quả gồm bình phương của 8 và 10, là {64, 100}.

Duyệt qua các phần tử set với hàm enumerate()

Chúng ta có thể duyệt qua các phần tử của một Set bằng cách sử dụng hàm enumerate() thông qua việc chuyển Set thành một List trước, sau đó áp dụng enumerate() để lặp qua các phần tử cùng với vị trí chỉ số của chúng. Dưới đây là cú pháp:

for index, item in enumerate(list(my_set)):
    # Phần code xử lý của bạn

Trong ví dụ sau, chúng ta sẽ chuyển một Set thành List. Sau đó, vòng lặp với Set trong Python sẽ được thực hiện thông qua vòng lặp for kết hợp với hàm enumerate(), lấy ra từng phần tử cùng với chỉ số tương ứng:

# Chuyển đổi Set thành List
my_set = {1, 2, 3, 4, 5}
set_list = list(my_set)

# Duyệt qua các phần tử của List
for index, item in enumerate(set_list):
    print("Chỉ số:", index, "Giá trị:", item)

Kết quả hiển thị trên màn hình sẽ như sau:

Chỉ số: 0 Giá trị: 1
Chỉ số: 1 Giá trị: 2
Chỉ số: 2 Giá trị: 3
Chỉ số: 3 Giá trị: 4
Chỉ số: 4 Giá trị: 5

Duyệt phần tử của set với phương thức add()

Chúng ta không thể trực tiếp duyệt qua các phần tử của set bằng cách sử dụng phương thức add() bởi vì add() được dùng để thêm phần tử vào set, không phải để lặp qua các phần tử đã có. Để duyệt qua các phần tử trong một set ta sẽ sử dụng vòng lặp như là vòng lặp for hoặc cú pháp set comprehension.

Trong ví dụ này, chúng ta sẽ duyệt qua một chuỗi số và thêm từng số vào set bằng phương thức add(). Vòng lặp for duyệt qua các phần tử hiện có, trong khi add() thêm các phần tử mới vào set đó:

# Tạo một set rỗng
my_set = set()

# Duyệt qua một chuỗi và thêm các phần tử vào set
for i in range(5):
    my_set.add(i)

print(my_set)

Kết quả sẽ như sau:

{0, 1, 2, 3, 4}

Giải thích:

  • my_set = set(): Dòng này tạo một set rỗng có tên là my_set.
  • for i in range(5):: Đây là một vòng lặp for. Biến i sẽ lần lượt nhận các giá trị từ 0 đến 4 (do range(5) tạo ra một chuỗi số từ 0 đến 4).
  • my_set.add(i): Bên trong vòng lặp, phương thức add() được gọi trên my_set. Trong mỗi lần lặp, giá trị hiện tại của i được thêm vào set.
  • print(my_set): Sau khi vòng lặp kết thúc, câu lệnh này in ra set my_set. Kết quả cho thấy set chứa các số từ 0 đến 4. Vì set chỉ chứa các phần tử duy nhất, nên dù ta có thêm một phần tử đã tồn tại nhiều lần, nó cũng chỉ xuất hiện một lần trong set.

Dịch vụ VPS Vietnix – Linh hoạt & tùy chỉnh theo nhu cầu

Trải nghiệm hiệu suất vượt trội và sự ổn định tuyệt đối với dịch vụ thuê VPS của Vietnix. Tăng tốc website, tối ưu trải nghiệm người dùng và thúc đẩy doanh số bán hàng với ổ cứng SSD/NVMe Enterprise, CPU Intel Xeon/AMD mạnh mẽ và công nghệ ảo hóa tiên tiến. Vietnix cam kết mang đến tốc độ mạng cao, sao lưu dữ liệu tự động hàng tuần, và giao diện quản lý Portal tiện dụng. Khám phá sự linh hoạt với đa dạng hệ điều hành và tùy chỉnh máy chủ theo nhu cầu.

Bứt phá hiệu năng website với VPS AMD của Vietnix. Được trang bị ổ cứng NVMe Enterprise siêu tốc và CPU AMD EPYC mạnh mẽ, dịch vụ này đảm bảo tốc độ xử lý vượt trội và thời gian phản hồi nhanh chóng, giúp website vận hành mượt mà và tối đa hóa chuyển đổi. Kết hợp với tốc độ mạng cao, VPS AMD là giải pháp lý tưởng cho các doanh nghiệp đòi hỏi hiệu suất cao.

Thông tin liên hệ:

  • Hotline: 18001093
  • Email: sales@vietnix.com.vn
  • Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh.
  • Website: https://vietnix.vn/

Vậy là chúng ta đã cùng nhau khám phá các phương pháp lặp qua các phần tử của set trong Python, từ vòng lặp for, while, set comprehension, hàm enumerate() đến phương thức add(). Hy vọng bài viết này đã cung cấp cho bạn những kiến thức hữu ích để bạn có thể làm việc hiệu quả hơn với set trong các dự án Python của mình.

Mọi người cũng đọc

Cao Lê Viết Tiến

PHP Leader
tại
Vietnix

Kết nối với mình qua

Icon Quote
Icon Quote

Học lập trình online cùng vietnix

Học lập trình online cùng Vietnix

PHPXem thêmThu gọn