Các thao tác trên cấu trúc dữ liệu Set trong Python

Đây là bài 27/54 bài của series môn học Ngôn ngữ lập trình Python

Ở bài Cấu trúc dữ liệu Set trong Python, các bạn đã tìm hiểu về Set. Trong bài này, chúng ta cùng xem xét một số thao tác có thể thực hiện trên Set trong Python.

1. Duyệt từng phần tử của Set

Sử dụng vòng lặp for để duyệt từng phần tử của Set trong Python.

my_set1 = {'gochocit', True, 5, 'com'}
print("my_set1:")
for x in my_set1:
    print(x, end=' ')

my_set2 = {1, -7.5, 'hello', 1, 'hello'}
print("\nmy_set2:")
for x in my_set2:
    print(x, end=' ')
Kết quả
my_set1:
True com 5 gochocit 
my_set2:
1 -7.5 hello

2. Các toán tử trên Set

2.1. Toán tử Union

Phép kết hợp (union) 2 Set sẽ tạo ra một Set mới gồm tất cả các phần tử của cả 2 Set đó. Chúng ta có thể dùng toán tử | hoặc hàm union() để kết hợp 2 Set.

Toán tử union của Set trong Python
my_set1 = {1, 2, 3, 4, 5}
my_set2 = {4, 5, 6, 7, 8}
# Union using operator |
my_set3 = my_set1 | my_set2
print("Union using operator |:", my_set3)

# Union using union()
my_set4 = my_set1.union(my_set2)
print("Union using union():", my_set4)
Kết quả
Union using operator |: {1, 2, 3, 4, 5, 6, 7, 8}
Union using union(): {1, 2, 3, 4, 5, 6, 7, 8}

2.2. Toán tử Intersection

Phép giao (intersection) 2 Set sẽ tạo ra một Set mới chỉ gồm các phần tử thuộc cả 2 Set đó. Chúng ta có thể dùng toán tử & hoặc hàm intersection() để giao 2 Set.

Toán tử intersection của Set trong Python
my_set1 = {1, 2, 3, 4, 5}
my_set2 = {4, 5, 6, 7, 8}
# Intersection using operator &
my_set3 = my_set1 & my_set2
print("Intersection using operator &:", my_set3)

# Intersection using intersection()
my_set4 = my_set1.intersection(my_set2)
print("Intersection using intersection():", my_set4)
Kết quả
Intersection using operator &: {4, 5}
Intersection using intersection(): {4, 5}

2.3. Toán tử Difference

Phép lấy phần khác nhau (difference) của 2 Set sẽ tạo ra một Set chỉ chứa các phần tử thuộc về một Set mà không thuộc về Set kia. Chúng ta có thể dùng toán tử – hoặc hàm difference() để giao 2 Set.

Toán tử difference của Set trong Python
my_set1 = {1, 2, 3, 4, 5}
my_set2 = {4, 5, 6, 7, 8}
# Difference using operator -
my_set3 = my_set1 - my_set2
print("Difference using operator -:", my_set3)

# Difference using difference()
my_set4 = my_set1.difference(my_set2)
print("Difference using difference():", my_set4)
Kết quả
Difference using operator -: {1, 2, 3}
Difference using difference(): {1, 2, 3}

2.4. Toán tử Symmetric Difference

Phép lấy phần khác nhau đối xứng (symmetric difference) của 2 Set sẽ tạo ra một Set chứa các phần tử không thuộc cả 2 Set. Chúng ta có thể dùng toán tử ^ hoặc hàm symmetric_difference() để giao 2 Set.

Toán tử symmetric difference của Set trong Python
my_set1 = {1, 2, 3, 4, 5}
my_set2 = {4, 5, 6, 7, 8}
# Symmetric Difference using operator ^
my_set3 = my_set1 ^ my_set2
print("Symmetric Difference using operator ^:", my_set3)

# Symmetric Difference using symmetric_difference()
my_set4 = my_set1.symmetric_difference(my_set2)
print("Symmetric Difference using symmetric_difference():", my_set4)
Kết quả
Symmetric Difference using operator ^: {1, 2, 3, 6, 7, 8}
Symmetric Difference using symmetric_difference(): {1, 2, 3, 6, 7, 8}

3. Các phương thức của Set

Python hỗ trợ nhiều method để giúp thao tác với Set dễ dàng hơn. Một số method thường sử dụng với Set được mô tả ở bảng bên dưới.

Phương thứcChức năng
add()Thêm một phần tử vào set
clear()Xóa tất cả phần tử từ set
copy()Trả về một bản sao chép của set
difference()Trả về một set chỉ chứa các phần tử thuộc về set 1 mà không thuộc set 2
difference_update()Xóa những phần tử của một set mà nằm trong một set khác
discard()Xóa một phần tử cụ thể của set
intersection()Trả về một set chỉ gồm các phần tử thuộc cả 2 set
intersection_update()Xóa các phần tử của một set mà không nằm trong một set khác
isdisjoint()Cho biết 2 set có các phần tử thuộc cả 2 set đó hay không
issubset()Cho biết một set có nằm trong một set khác hay không
issuperset()Cho biết một set có bao gồm một set khác hay không
pop()Xóa một phần tử của set
remove()Xóa một phần tử cụ thể của set
symmetric_difference()Trả về một set chứa các phần tử vừa không thuộc set 1 vừa không thuộc set 2
symmetric_difference_update()Loại bỏ các phần tử thuộc cả 2 set ở set 1 rồi chèn các phần tử chỉ thuộc set 2 vào set 1
union()Trả về một set bao gồm tất cả các phần tử của 2 set
update()Thêm tất cả phần tử của set 2 mà không thuộc set 1 vào cho set 1

Ví dụ sử dụng các method của Set

my_set1 = {'John', 'Marry', 'Henry'}
my_set2 = {'Kane', 'Cris', 'John'}

# add()
my_set1.add('Son')
print("add my_set1:", my_set1)

# clear()
my_set1.clear()
print("clear my_set1:", my_set1)

# copy()
my_set_copy = my_set2.copy()
print("copy my_set2:", my_set_copy)

# isdisjoint()
my_set1 = {'John', 'Marry', 'Henry'}
my_set2 = {'Kane', 'Cris', 'John'}
print("my_set1 havenot a intersection with my_set2?", my_set1.isdisjoint(my_set2))
my_set1 = {'John', 'Marry', 'Henry'}
my_set2 = {'Kane', 'Cris', 'Son'}
print("my_set1 havenot a intersection with my_set2?", my_set1.isdisjoint(my_set2))

# update()
my_set1.update(my_set2)
print("update my_set1:", my_set1)
Kết quả
add my_set1: {'Marry', 'Henry', 'Son', 'John'}
clear my_set1: set()
copy my_set2: {'Kane', 'Cris', 'John'}
my_set1 havenot a intersection with my_set2? False
my_set1 havenot a intersection with my_set2? True
update my_set1: {'Kane', 'Henry', 'John', 'Marry', 'Cris', 'Son'}
5/5 - (1 bình chọn)
Bài trước và bài sau trong môn học<< Cấu trúc dữ liệu Set trong PythonCấu trúc dữ liệu Dictionary trong Python >>
Chia sẻ trên mạng xã hội:

Trả lời

Lưu ý:

1) Vui lòng bình luận bằng tiếng Việt có dấu.

2) Khuyến khích sử dụng tên thật và địa chỉ email chính xác.

3) Mọi bình luận trái quy định sẽ bị xóa bỏ.