Thành thạo cách sử dụng hàm Set trong Python là chìa khóa để xử lý hiệu quả dữ liệu không trùng lặp. Khi thao tác với tập hợp, việc hiểu rõ bản chất của kiểu dữ liệu Set sẽ giúp bạn làm việc nhanh chóng và chính xác hơn. Bài viết dưới đây từ Mytour sẽ hướng dẫn chi tiết cách dùng Set và những lưu ý quan trọng cần ghi nhớ.
Kiểu Set trong Python là gì?
Set trong Python là một dạng cấu trúc dữ liệu đặc biệt được sử dụng để lưu các giá trị duy nhất và không theo thứ tự. Không giống như list hay tuple, mỗi phần tử trong set chỉ xuất hiện một lần và không có vị trí cụ thể. Set được xem như một “container” – tức là một đối tượng có khả năng chứa nhiều phần tử nhưng không sắp xếp theo thứ tự như các kiểu dữ liệu tuần tự khác.

Kiểu set trong Python được xây dựng dựa trên nền tảng lý thuyết tập hợp trong toán học, cho phép bạn thao tác linh hoạt với các phép toán như union(), intersection(), và difference(). Các phần tử trong set phải là kiểu dữ liệu bất biến như số nguyên, chuỗi hoặc tuple để đảm bảo tính ổn định trong xử lý. Khi nắm vững bản chất của set, bạn sẽ nhận ra đây là công cụ cực kỳ hiệu quả để xử lý các tập dữ liệu phức tạp.
Cấu trúc cú pháp của hàm Set trong Python
Hàm set() là phương thức phổ biến để tạo ra một tập hợp trong Python. Cú pháp cơ bản là: set([iterable])
Trong đó, iterable là một đối tượng có khả năng lặp lại, chẳng hạn như: chuỗi (string), danh sách (list), bộ (tuple), tập hợp (set), từ điển (dictionary) hoặc bất kỳ iterator nào.

Kết quả trả về từ hàm set() trong Python:
- Nếu không truyền đối số nào, set() sẽ tạo ra một tập hợp rỗng trong Python.
- Nếu truyền vào một iterable, set() sẽ trả về tập hợp chứa các phần tử duy nhất từ iterable đó.
Để nâng cao hiệu quả khi sử dụng hàm set trong Python, việc trang bị một thiết bị truy cập phù hợp là rất quan trọng. Việc chọn đúng laptop và phần mềm hỗ trợ sẽ giúp bạn thao tác nhanh gọn và chính xác hơn. Cùng tham khảo những mẫu laptop Acer đang được ưa chuộng tại Mytour để tìm ra lựa chọn tối ưu nhất cho mình:
Cách khởi tạo các phần tử trong set Python
Bạn có thể khởi tạo các phần tử kiểu set trong Python bằng một trong hai cú pháp sau:
Cách sử dụng hàm set trong Python bằng cú pháp dấu ngoặc nhọn để khởi tạo trực tiếp:
set1 = {"bien1", "bien2", "bien3"}

Phương pháp thứ hai là sử dụng hàm set trong Python để chuyển đổi từ danh sách hoặc chuỗi:
set1 = set(["bien1", "bien2", "bien3"])
Lưu ý:
Dùng dấu ngoặc vuông [] để khai báo List
Dùng dấu ngoặc tròn () để khai báo Tuple
Dùng dấu ngoặc nhọn {} để khai báo Set
Ngoài ra, trong cả hai cách khởi tạo, các phần tử cần thuộc kiểu dữ liệu bất biến. Điều này giúp đảm bảo tính ổn định cho set trong Python và hỗ trợ tốt các phép toán như hợp, giao và hiệu.
Những thao tác cơ bản với set trong Python
Kiểu set trong Python không chỉ giúp lưu trữ các giá trị duy nhất mà còn hỗ trợ thực hiện các phép toán như hợp, giao và hiệu. Dưới đây là các thao tác cơ bản bạn cần nắm để làm việc hiệu quả với set trong Python.
Thêm phần tử mới vào set
Để thêm một phần tử vào tập hợp set, bạn có thể dùng phương thức .add(). Phương thức này chỉ thêm được một phần tử tại một thời điểm. Dưới đây là ví dụ minh họa cách sử dụng trong Python:
mySet = {10, 20, 30}
mySet.add(2)
print(mySet)
# Kết quả: {10, 20, 30, 2}

Lưu ý rằng do set trong Python không giữ thứ tự, nên kết quả có thể khác nhau mỗi lần thực thi.
Xóa phần tử trong set
Để loại bỏ phần tử khỏi set trong Python, bạn có thể dùng các phương thức như .remove(), .discard() hoặc .pop(). Ví dụ minh họa với .remove():
friends = {"Rolf", "Bob", "Anne"}
friends.remove("Anne")
print(friends) # Kết quả: {"Rolf", "Bob"}
Cần lưu ý rằng nếu phần tử không tồn tại trong set, phương thức .remove() sẽ gây ra lỗi KeyError, trong khi .discard() sẽ bỏ qua mà không sinh lỗi.
Kiểm tra sự tồn tại của phần tử trong set
Để kiểm tra một giá trị có nằm trong set hay không, bạn có thể dùng toán tử in. Dưới đây là ví dụ minh họa cách sử dụng:
my_set = {1, 2, 3, 4, 5}
print(3 in my_set) # Kết quả: True

Sử dụng hàm in là cách đơn giản và hiệu quả để kiểm tra xem phần tử có thuộc set trong Python hay không.
Toán tử cơ bản với Set trong Python
Kiểu set trong Python cung cấp các toán tử cơ bản giúp thực hiện các phép toán như hợp, giao, hiệu và đối xứng, hỗ trợ xử lý dữ liệu linh hoạt và nhanh chóng.
Sử dụng toán tử "|" để tìm hợp hai tập hợp
Trong Python, toán tử | dùng để tìm hợp của hai set, kết hợp tất cả phần tử từ cả hai mà không trùng lặp. Bạn cũng có thể dùng phương thức union() để làm điều này như ví dụ sau:
a = set([1, 2, 3, 4])
b = set([4, 5, 6, 7])
result = a | b
print(result) # Kết quả: {1, 2, 3, 4, 5, 6, 7}

Tìm giao hai tập hợp với toán tử "&"
Toán tử & trong set Python giúp bạn tìm phần tử chung giữa hai tập hợp, tức là các phần tử xuất hiện đồng thời trong cả hai tập hợp như ví dụ sau:
set1 = {1, 2, 3}
set2 = {1, 4, 6}
result = set1 & set2
print(result) # Kết quả: {1}
Bạn có thể dùng phương thức intersection() hoặc toán tử &= để cập nhật giao của hai tập hợp vào tập ban đầu:
set1 &= set2
print(set1) # Kết quả: {1}
Tìm phần tử có trong set1 nhưng không trong set2 với toán tử "-"
Toán tử - trong Python được sử dụng để lấy hiệu của hai tập hợp, nghĩa là các phần tử thuộc set1 mà không nằm trong set2:
set1 = {8, 11, 15, 19}
set2 = {3, 11, 9, 15}
result = set1 - set2
print(result) # Kết quả: {8, 19}

Bạn cũng có thể dùng phương thức difference() hoặc toán tử -= để cập nhật hiệu trực tiếp trên tập hợp ban đầu:
set1 -= set2
print(set1) # Kết quả: {8, 19}
Tìm phần bù đối xứng giữa hai tập hợp với toán tử "^"
Toán tử ^ trong set Python được dùng để lấy phần bù đối xứng giữa hai tập hợp, nghĩa là những phần tử chỉ xuất hiện ở một trong hai tập hợp, không có trong cả hai:
set1 = {1, 2, 3}
set2 = {1, 4, 6}
result = set1 ^ set2
print(result) # Kết quả: {2, 3, 4, 6}
Bạn có thể dùng phương thức symmetric_difference() hoặc toán tử ^= để cập nhật phần bù đối xứng vào tập hợp ban đầu:
set1 ^= set2
print(set1) # Kết quả: {2, 3, 4, 6}
Ứng dụng thực tiễn của set trong Python
Hàm set trong Python rất hữu dụng nhờ đặc tính loại bỏ phần tử trùng lặp, áp dụng hiệu quả trong nhiều tình huống như:
- Loại bỏ phần tử lặp lại: Dùng kiểu set để nhanh chóng loại bỏ các phần tử trùng trong danh sách, giúp xử lý dữ liệu thuận tiện hơn.
- Tính giao, hợp, hiệu của các tập hợp: Python hỗ trợ các toán tử & (giao), | (hợp) và - (hiệu) để thực hiện các phép toán tập hợp dễ dàng trong thực tế.

- Phân tích dữ liệu lớn: Trong các ứng dụng như phân tích dữ liệu hay khoa học dữ liệu, set giúp xử lý tập dữ liệu khổng lồ mà không lo bị trùng lặp phần tử.
Các lỗi phổ biến khi dùng set trong Python
Dù set trong Python rất tiện lợi, người dùng vẫn hay gặp một số lỗi khi thao tác với kiểu dữ liệu này như sau:
- Thêm phần tử không hợp lệ: Set chỉ chứa các phần tử có khả năng hash, tức không thể thêm các đối tượng không hash được như danh sách. Khi cố gắng thêm danh sách vào set, Python sẽ báo lỗi.

- Sử dụng sai toán tử tập hợp: Khi áp dụng các toán tử như &, |, -, hoặc ^ cho kiểu dữ liệu không phù hợp, Python sẽ không thực hiện phép toán đúng.
- Dùng set với phần tử có thứ tự: Set không giữ thứ tự phần tử, nếu cần duy trì thứ tự hãy dùng OrderedDict hoặc list thay thế.
- Phụ thuộc quá nhiều vào set cho dữ liệu có thứ tự: Dù set mạnh, nếu cần xử lý dữ liệu theo thứ tự thì nên dùng tuple hoặc các phương pháp khác.
Sử dụng hàm set trong Python cơ bản là kỹ năng quan trọng để loại bỏ phần tử trùng và thực hiện phép toán tập hợp hiệu quả. Hiểu rõ về set và cú pháp sẽ giúp bạn nâng cao hiệu suất công việc và giáo dục. Tham khảo thêm trên Mytour để cải thiện công cụ và phần mềm bạn dùng.
