Set Trong Python – Những Điều Bạn Cần Biết Kiểu Dữ Liệu Này 2021

Giới thiệu set trong python

Tập hợp Set trong Python: Set là một cấu trúc dữ liệu dạng đa giá trị trong Python. Một Set thường bao gồm các đặc điểm sau đây:

  • Set là một container trong python
  • Mỗi giá trị của Set trong python chỉ xuất hiện tối đa 1 lần
  • Các phần tử của Set không có vị trí nhất định và có thể thay đổi được
  • Các phép toán thường được sử dụng trong Set là: phép hợp (union), phép giao (intersection), phép hiệu (difference)…

Các phần tử trong Set phải là các dữ liệu không thể thay đổi như một số (int), một chuỗi (string), hoặc một Tuple.

Kiểu dữ liệu set trong python

Khởi tạo các phần tử set trong python

Để khởi tạo các phần tử Set trong Python, chúng ta sử dụng 1 trong 2 cách sau:

Cách 1: Đặt các phần tử trong dấu ngoặc nhọn {} và ngăn cách nhau bằng dấu phẩy

Ví dụ: set1={“bien1”, “bien2”, “bien3”}

Cách 2: Tạo Set bằng hàm tạo có sẵn set()

Ví dụ: set1=set([“bien1”, “bien2”, “bien3”])

Chú ý:

  • Dấu ngoặc vuông [] sử dụng khai báo List
  • Dấu ngoặc tròn () sử dụng khai báo Tuple
  • Dấu ngoặc nhọn {} sử dụng khai báo Set

Để in các phần từ trong set ra màn hình, chúng ta sử dụng lệnh print như sau:

set1={“bien1”, “bien2”, “bien3”}

print(set1)

Toán tử với Set trong Python

3.1 Toán tử “|” và cách tìm hợp 2 tập hợp trong python

Để hợp 2 tập hợp Set in Python, chúng ta sử dụng toán tử “|”, phương thức update() hoặc union().

Ví dụ: 

Set1 = {1, 2, 3}

Set 2 = {1, 4, 6}

=> để tìm hợp của set1 và set2, sau đó lưu kết quả vào 1 set mới, ta làm như sau:

Set = set1|set2

hoặc

Set = set1.union(set2)

Kết quả trả về: {1, 2, 3, 4, 6}

=> để tìm hợp của set1 và set2, sau đó lưu kết quả vào set1, ta làm như sau:

Set1 |= Set2

Set1.update(set2)

Kết quả trả về: {1, 2, 3, 4, 6}

3.2 Toán tử “&” và cách tìm giao giữa 2 tập hợp set trong Python

kiểu dữ liệu set in python

Giao của 2 tập hợp set trong python là một tập hợp phần tử có mặt ở cả 2 tập hợp set.

Để tìm giao của 2 tập hợp set in Python, chúng ta sử dụng toán tử “&” hoặc phương thức intersection() với cú pháp như dưới đây:

Set1 = {1, 2, 3}

Set 2 = {1, 4, 6}

Cách 1: để tìm giao của set1 và set2, sau đó lưu kết quả vào 1 set mới, ta làm như sau:

set = set1 & set2

hoặc

set = set1.intersection(set2)

Print(set)

=> Kết quả trả về: {1}

Cách 2: để tìm giao của set1 và set2, sau đó lưu kết quả vào set1, ta sử dụng toán tử “&=” hoặc phương thức intersection_update()  như sau:

set1 &= set2

hoặc

set1.intersection_update(set2)

Print(set1)

=> Kết quả trả về: {1}

3.3 Toán tử “-” và cách tìm hiệu giữa 2 tập hợp set trong Python

Hiệu 2 tập hợp set trong Python là tập hợp chứa những phần tử có ở trong 1 tập hợp nhưng không có trong tập hợp còn lại.

Để tìm hiệu giữa 2 tập hợp, chúng ta sử dụng toán tử “-” hoặc phương thức difference() với cú pháp như duới đây:

Set1 = {1, 2, 3}

Set 2 = {1, 4, 6}

Cách 1: để tìm hiệu của set1 và set2, sau đó lưu kết quả vào 1 set mới, ta làm như sau:

set = set1 - set2

hoặc

set = set1.difference(set2)

Print(set)

=> Kết quả trả về: {2, 3}

Cách 2: để tìm hiệu của set1 và set2, sau đó lưu kết quả vào set1, ta sử dụng toán tử “-=” hoặc phương thức difference_update()  như sau:

set1 -= set2

hoặc

set1.difference_update(set2)

Print(set1)

=> Kết quả trả về: {2, 3}

3.4 Toán tử “^” và cách tìm phần bù giữa 2 tập hợp set trong Python

Phần bù giữa 2 tập hợp set trong python là tập hợp các phần tử chỉ chứa ở một trong hai tập hợp.

Để tìm phần bù giữa 2 tập hợp, chúng ta sử dụng toán tử “^” hoặc phương thức symmetric_difference() với cú pháp như duới đây:

Set1 = {1, 2, 3}

Set 2 = {1, 4, 6}

Cách 1: để tìm phần bù của set1 và set2, sau đó lưu kết quả vào 1 set mới, ta làm như sau:

set = set1 ^ set2

hoặc

set = set1.symmetric_difference(set2)

Print(set)

=> Kết quả trả về: {2, 3, 4, 6}

Cách 2: để tìm phần bù của set1 và set2, sau đó lưu kết quả vào set1, ta sử dụng toán tử “^=” hoặc phương thức symmetric_difference_update()  như sau:

set1 ^= set2

hoặc

set1.symmetric_difference_update(set2)

Print(set1)

=> Kết quả trả về: {2, 3, 4, 6}

Thêm phần tử của set trong python

cập nhật phần tử của tập hợp set trong python

Để thêm phần tử vào Set trong Python, chúng ta có thể sử dụng hàm Add() để thêm phần tử, hoặc Update() cập nhật phần tử.

Hãy cùng xem xét các ví dụ dưới đây để hiểu rõ hơn:

set1={1, 2, 3}

#Thêm phần từ 4 vào set => bổ sung thêm phần tử 4

set1.add(4)

#update thêm phần tử 4,5,6 vào set1 => cập nhật và loại bỏ các phần tử trùng nhau

set1.update([4, 5, 6])

print(set1)

=> Kết quả thu được là: {1, 2, 3, 4, 5, 6}

Xóa phần tử của set trong python

Cách xoá bỏ phần tử ra khỏi Set chúng ta có thể sử dụng hai hàm là discard() và remove(). Cả hai đều có chung một mục đích là xoá phần tử khỏi set trong Python, tuy nhiên điểm khác biệt là với discard() thì sẽ không sinh lỗi nếu giá trị cần xóa không tồn tại, còn remove() thì sẽ sinh lỗi.

Ngoài ra chúng ta cũng có thể sử dụng Pop() để loại bỏ một phần tử trong set, tuy nhiên hàm này sẽ luôn loại bỏ phần tử cuối cùng trong Set. Hoặc nếu bạn sử dụng hàm Clear(), nó sẽ loại bỏ tất cả các phần tử trong Set.

Cùng tìm hiểu các cách thức xoá bỏ phần tử của set trong python đã liệt kê ở trên qua các ví dụ:

set1={1, 2, 3}

set1.discard(2)

#output sẽ xoá bỏ phần tử có giá trị là 2 và sẽ in ra màn hình các giá trị còn lại trong set

print(set1)

=> kết quả trả về sẽ là: {1, 3}

set1={1, 2, 3}

set.remove(4)

print(set1)

#output sẽ trả về có lỗi vì giá trị cần xoá bỏ không tồn tại

set1={1, 2, 3}

set.pop()

#output sẽ xoá giá trị cuối cùng trong set là 3 và in ra màn hình các giá trị còn lại trong set.

print(set1)

=> Kết quả trả về sẽ là: {1, 3}

set1={1, 2, 3}

set.clear()

#output sẽ xoá tất cả phần tử trong Set và in ra màn hình

print(set1)

=> Kết quả trả về sẽ là: {}

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *