PHP
Python

Trang chủ

Các cách nố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

Các cách nối set trong Python

Trong quá trình phát triển ứng dụng Python, việc làm việc với các set là điều không thể tránh khỏi. Một trong những thao tác thường gặp là kết hợp các tập hợp khác nhau. Bài viết này sẽ đi sâu vào các phương pháp nối set trong Python, cung cấp cho bạn những giải pháp thực tế và hiệu quả để quản lý dữ liệu tập hợp một cách tối ưu.

Các điểm chính

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

  • Làm chủ 5 phương pháp nối set trong Python: Nắm vững cú pháp, cách sử dụng và điểm khác biệt giữa các phương pháp nối set với toán tử “|” , phương thức union(), phương thức update(), toán tử Unpacking, và set comprehension.
  • Biết cách lựa chọn phương pháp nối set phù hợp với từng tình huống cụ thể: Hiểu rõ ưu và nhược điểm của từng phương pháp (tốc độ, dễ đọc, khả năng sửa đổi set ban đầu) để đưa ra quyết định tốt nhất cho dự án.
  • Khả năng áp dụng kiến thức vào thực tế: Nhận được những ví dụ minh họa cụ thể, dễ hiểu, giúp người đọc tự tin thực hành và áp dụng các phương pháp nối set vào các bài toán lập trình thực tế.
  • Có cái nhìn tổng quan về các kỹ thuật nâng cao với set (set comprehension, Iterative Addition): Nắm những kỹ thuật nâng cao hơn để khám phá, tạo động lực học hỏi thêm.
  • Được giới thiệu về dịch vụ VPS Vietnix: Tiết kiệm chi phí và hiệu năng tối ưu.

Nối set trong Python

Nối set trong Python là gộp hai hoặc nhiều set thành một set duy nhất. Khi bạn nối các set, các phần tử của nhiều set sẽ được hợp nhất lại, đồng thời đảm bảo loại bỏ các phần tử trùng lặp, vì set không cho phép các phần tử trùng nhau.

Nối set trong Python là thao tác gộp hai hoặc nhiều set lại thành một set duy nhất
Nối set trong Python là thao tác gộp hai hoặc nhiều set lại thành một set duy nhất

Có nhiều phương pháp để thực hiện việc này, chẳng hạn như sử dụng phép hợp (union), phương thức update, set comprehension, nối set (set concatenation), sao chép, và thêm tuần tự (iterative addition).

Nối set trong Python với toán tử “|”

Ký hiệu “|” được định nghĩa là toán tử hợp. Nó thực hiện phép toán A∪B và trả về một tập hợp các phần tử có trong A, B hoặc cả hai. Tập hợp không cho phép các phần tử trùng lặp.

Trong ví dụ sau, chúng ta sẽ thực hiện phép hợp trên hai set là s1 và s2 bằng cách sử dụng toán tử “|”. Kết quả là set mới s3 sẽ chứa các phần tử từ cả hai set ban đầu, và loại bỏ các phần tử trùng lặp:

s1 = {1, 2, 3, 4, 5}
s2 = {4, 5, 6, 7, 8}
s3 = s1 | s2
print(s3)

Kết quả của đoạn code trên sẽ là:

{1, 2, 3, 4, 5, 6, 7, 8}

Giải thích:

  • Hai set s1s2 được khởi tạo, chứa một số giá trị số nguyên.
  • Toán tử | được sử dụng để thực hiện phép hợp giữa s1s2.
  • s3 bây giờ là một set mới chứa tất cả các phần tử độc nhất (không trùng) từ s1s2. Như bạn có thể thấy, các số 4 và 5 chỉ xuất hiện một lần trong s3 mặc dù giá trị của chúng xuất hiện ở cả hai set.

Nối set trong Python với phương thức union()

Phương thức này thực hiện cùng chức năng với toán tử |. Phương thức trả về một đối tượng set mới, đối tượng này chứa tất cả các phần tử trong cả hai set ban đầu và loại bỏ các phần tử trùng lặp. Đây cũng là một cách để nối set trong Python.

Trong ví dụ sau, chúng ta sẽ gọi phương thức union() trên set s1, và truyền set s2 vào như một đối số. Kết quả trả về sẽ là một set mới có tên là s3, set này sẽ chứa tất cả các phần tử từ cả hai set s1 và s2, nhưng không có phần tử nào bị trùng lặp:

s1 = {1, 2, 3, 4, 5}
s2 = {4, 5, 6, 7, 8}
s3 = s1.union(s2)
print(s3)

Kết quả sau khi chạy code:

{1, 2, 3, 4, 5, 6, 7, 8}

Giải thích code:

  • Hai set, s1s2, được khởi tạo với các giá trị số nguyên khác nhau:
  • Phương thức union() được gọi trên s1, với s2 được truyền vào như một đối số. Điều này tạo ra một set mới s3:
  • s3 chứa tất cả các phần tử từ cả s1s2, không có phần tử trùng lặp (lưu ý: số 4 và 5 xuất hiện ở cả s1s2, nhưng chỉ xuất hiện một lần trong s3):
  • Giá trị của s3 được in ra, hiển thị các phần tử duy nhất từ cả hai set ban đầu:

Nối set trong Python với phương thức update()

Phương thức update() cũng có khả năng nối hai set lại với nhau, tương tự như phương thức union(). Tuy nhiên, điểm khác biệt là update() không tạo ra một set mới. Thay vào đó, phương thức này thêm các phần tử của set thứ hai vào set thứ nhất, và loại bỏ các phần tử trùng lặp.

Trong ví dụ dưới đây, chúng ta sẽ cập nhật set s1 bằng các phần tử của set s2 sử dụng phương thức update(). Việc này làm thay đổi s1, khiến s1 chứa các phần tử từ cả hai set ban đầu, không có phần tử nào trùng lặp:

s1 = {1, 2, 3, 4, 5}
s2 = {4, 5, 6, 7, 8}
s1.update(s2)  # Nối set s2 vào s1
print(s1)

Kết quả thu được như sau:

{1, 2, 3, 4, 5, 6, 7, 8}

Giải thích code:

  • Khai báo hai set: s1s2, mỗi set chứa một số phần tử.
  • s1.update(s2): Câu lệnh này thực hiện nối set s2 vào s1. Các phần tử của s2 sẽ được thêm vào s1. Nếu có phần tử nào xuất hiện ở cả hai set (trong trường hợp này là 4 và 5), set kết quả sẽ chỉ giữ lại một phần tử duy nhất (tính chất của set).
  • print(s1): In ra set s1 sau khi đã được cập nhật.

Nối set trong Python với toán tử Unpacking

Trong Python, ký hiệu * được sử dụng như một toán tử unpacking. Toán tử unpacking này, về bản chất, sẽ gán từng phần tử trong một collection cho các biến riêng biệt. Chúng ta có thể nối set trong Python bằng cách sử dụng toán tử unpacking (*) để giải nén các phần tử của nhiều set vào một set mới.

Trong ví dụ sau, chúng ta tạo một set mới s3 bằng cách giải nén các phần tử của các set s1 và s2 sử dụng toán tử * bên trong một set literal (cặp dấu ngoặc nhọn {}):

s1 = {1, 2, 3, 4, 5}
s2 = {4, 5, 6, 7, 8}
s3 = {*s1, *s2}  # Dùng toán tử * để "giải nén" và nối
print(s3)

Kết quả in ra sẽ là:

{1, 2, 3, 4, 5, 6, 7, 8}

Giải thích chi tiết:

  • s1 = {1, 2, 3, 4, 5}s2 = {4, 5, 6, 7, 8}: Khai báo và khởi tạo hai set s1s2 với các giá trị ban đầu.
  • s3 = {*s1, *s2}:
    • Dấu {}: Biểu thị việc tạo một set mới.
    • *s1: Toán tử unpacking * đứng trước s1. Nó “mở” s1 ra, lấy từng phần tử của s1 (1, 2, 3, 4, 5) và đưa vào set mới.
    • *s2: Tương tự, *s2 “mở” s2 ra, lấy từng phần tử của s2 (4, 5, 6, 7, 8) đưa vào set mới.
    • Do Set là tập hợp chứa phần tử unique (không trùng lặp), s3 được tạo thành sẽ loại bỏ những phần tử nào đã có trong set s1 rồi thì không đưa vào set s3 nữa, nghĩa là set là một tập hợp các phần tử riêng biệt.
  • print(s3): In set s3 ra màn hình, các số 1,2,3,4,5,6,7,8 sẽ xuất hiện.

Nối set với set comprehension trong Python

Chúng ta có thể thực hiện việc Nối set Trong Python bằng cách sử dụng set comprehension, bằng phương pháp duyệt qua nhiều set và thêm các phần tử của các set đó vào một set mới.

Ví dụ:

tap_hop_mon_hoc_yeu_thich_nam = {"Toán", "Lý", "Tin học"}
tap_hop_mon_hoc_yeu_thich_hoa = {"Văn", "Sử", "Địa", "Toán"}

# Sử dụng set comprehension để tạo một set chứa tất cả các môn học yêu thích
tap_hop_tat_ca_mon_hoc = {mon_hoc for tap_hop in [tap_hop_mon_hoc_yeu_thich_nam, tap_hop_mon_hoc_yeu_thich_hoa] for mon_hoc in tap_hop}

print(tap_hop_tat_ca_mon_hoc)

Kết quả chạy code:

{‘Lý’, ‘Văn’, ‘Toán’, ‘Địa’, ‘Sử’, ‘Tin học’}

Giải thích:

  • tap_hop_mon_hoc_yeu_thich_namtap_hop_mon_hoc_yeu_thich_hoa: Đây là hai set, mỗi set chứa các môn học yêu thích của Nam và Hoa.
  • {mon_hoc for tap_hop in [tap_hop_mon_hoc_yeu_thich_nam, tap_hop_mon_hoc_yeu_thich_hoa] for mon_hoc in tap_hop}: Đây chính là “set comprehension”. Hãy phân tích kỹ hơn:
    • for tap_hop in [tap_hop_mon_hoc_yeu_thich_nam, tap_hop_mon_hoc_yeu_thich_hoa]: Vòng lặp này duyệt qua từng set trong danh sách các set (danh sách ở đây có hai phần tử là hai set môn học).
    • for mon_hoc in tap_hop: Với mỗi set (tap_hop) có được ở bước trên, vòng lặp này duyệt qua từng phần tử (mon_hoc) bên trong set đó.
    • mon_hoc: Đây là biểu thức được áp dụng cho mỗi phần tử. Trong trường hợp này, chúng ta chỉ đơn giản là lấy chính phần tử đó (mon_hoc) để đưa vào set mới.
  • Kết quả, tap_hop_tat_ca_mon_hoc sẽ là một set chứa tất cả các môn học yêu thích của cả Nam và Hoa (và loại bỏ các môn học trùng lặp, vì set không chứa các phần tử trùng nhau).

Nối set trong Python bằng Iterative Addition

Thêm tuần tự trong ngữ cảnh của set ám chỉ việc thêm các phần tử từ một set vào một set khác bằng cách sử dụng vòng lặp hoặc cấu trúc lặp. Thao tác này cho phép bạn hợp nhất các phần tử của nhiều set vào một set duy nhất, đảm bảo rằng các phần tử trùng lặp không bị lặp lại.

Chúng ta có thể nối set trong Python bằng cách duyệt qua các phần tử của từng set và thêm các phần tử đó vào một set mới.

Trong ví dụ dưới đây, chúng ta khởi tạo một set rỗng. Sau đó, ta duyệt qua từng phần tử trong set1 và set2 một cách riêng biệt, thêm từng phần tử vào một set mới có tên là joined_set bằng phương thức add():

set1 = {"táo", "chuối", "cam"}
set2 = {"cam", "quýt", "xoài"}

# Khởi tạo một set rỗng để chứa các phần tử được hợp nhất
joined_set = set()

# Duyệt qua set1 và thêm các phần tử vào set mới
for phan_tu in set1:
    joined_set.add(phan_tu)

# Duyệt qua set2 và thêm các phần tử vào set mới
for phan_tu in set2:
    joined_set.add(phan_tu)

print(joined_set)

Sau khi thực thi đoạn mã trên, kết quả sẽ là:

{‘chuối’, ‘táo’, ‘quýt’, ‘xoài’, ‘cam’}

Giải thích code:

  • set1set2: được khởi tạo với các giá trị khác nhau (ở đây là các loại trái cây để dễ hình dung).
  • joined_set = set(): Tạo một set rỗng. Set này sẽ được dùng để chứa tất cả phần tử của set1set2 sau khi gộp.
  • Vòng lặp for phan_tu in set1:: duyệt qua từng phần tử trong set1. Bên trong vòng lặp, joined_set.add(phan_tu) thêm từng phần tử đó vào joined_set.
  • Vòng lặp for phan_tu in set2:: thực hiện tương tự cho set2. Chú ý là mặc dù “cam” xuất hiện trong cả set1set2, nó chỉ xuất hiện một lần trong joined_set bởi vì set không cho phép các phần tử trùng lặp.
  • Cuối cùng, print(joined_set): in ra joined_set sau khi đã hợp nhất, các phần tử trong joined_set không có thứ tự.

Dịch vụ VPS Vietnix: Tiết kiệm chi phí và hiệu năng tối ưu

Vietnix mang đến dịch vụ VPS mạnh mẽ với tốc độ tải trang vượt trội, tối ưu trải nghiệm người dùng và thúc đẩy tăng trưởng kinh doanh. Sử dụng ổ cứng SSD/NVMe Enterprise, CPU Intel Xeon/AMD, công nghệ ảo hóa hiện đại và tốc độ mạng cao (200 Mbps trong nước, 20 Mbps quốc tế), VPS Vietnix đảm bảo website hoạt động ổn định, an toàn và nâng cao uy tín thương hiệu. Dịch vụ bao gồm sao lưu dữ liệu tự động hàng tuần trên server độc lập, khôi phục dữ liệu dễ dàng qua giao diện quản trị, tùy chỉnh máy chủ linh hoạt, và đa dạng hệ điều hành (Windows Server, Windows, Ubuntu, Debian, AlmaLinux, CentOS).

Tận hưởng hiệu suất cao với chi phí tiết kiệm cùng dịch vụ VPS Giá Rẻ của Vietnix. Đa dạng gói dịch vụ phù hợp với ngân sách, khởi tạo nhanh chóng và dễ dàng nâng cấp/hạ cấp. Tăng tốc website và giữ chân khách hàng với ổ cứng SSD Enterprise RAID 10, tốc độ mạng 100 Mbps, và datacenter chuẩn Tier 3. Dữ liệu được bảo vệ an toàn với hệ thống backup tự động hàng tuần trên server độc lập và dễ dàng khôi phục. Vietnix cam kết uptime 99.9% với chính sách đền bù minh bạch, cùng các chứng nhận ISO 27001:2022 và ISO 9001:2015, đảm bảo an toàn và chất lượng dịch vụ. Xây dựng website, blog, cửa hàng trực tuyến hiệu quả và an toàn với VPS Giá Rẻ Vietnix.

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 vừa cùng nhau khám phá các phương pháp nối set trong Python, từ sử dụng toán tử |, phương thức union(), update(), đến toán tử Unpacking, set comprehension và Iterative Addition. Hy vọng bài viết này đã cung cấp cho bạn những kiến thức hữu ích để xử lý dữ liệu hiệu quả hơn 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