Trong quá trình học lập trình Python, bên cạnh các kiểu dữ liệu quen thuộc như list, tuple,.. thì set là một cấu trúc dữ liệu rất quan trọng. Vậy set trong Python là gì, cách tạo set trong python ra sao? Theo dõi ngay bài viết dưới đây của Code Dream để biết chi tiết nhé!
Set trong Python là gì?
Set trong Python là một kiểu dữ liệu dùng để lưu trữ tập hợp các phần tử không trùng lặp. Set được bao bọc bởi cặp dấu ngoặc nhọn {}, bên trong là các phần tử được tách bằng dấu phẩy. Khác với list, các phần tử trong set không có thứ tự xác định và không thể truy cập bằng chỉ số.
Nói một cách đơn giản, set giống như khái niệm “tập hợp” trong toán học. Khi thêm nhiều phần tử giống nhau vào set, Python sẽ tự động loại bỏ các giá trị trùng lặp.
Đặc điểm nổi bật của Set trong Python
So với các cấu trúc dữ liệu khác như list hay tuple, set sở hữu nhiều đặc điểm nổi bật mà người học Python cần nắm vững để sử dụng đúng và tối ưu.
Thứ nhất: Không chứa các phần tử trùng lặp
Đặc điểm quan trọng nhất của set trong Python là mỗi phần tử chỉ xuất hiện duy nhất một lần. Khi bạn thêm các giá trị trùng nhau vào set, Python sẽ tự động loại bỏ các phần tử bị lặp.Nhờ đặc điểm này, set thường được dùng để lọc dữ liệu trùng, làm sạch danh sách hoặc kiểm soát tính duy nhất của các giá trị đầu vào.
Thứ hai: Không có thứ tự cố định
Khác với list, set trong Python không duy trì thứ tự phần tử. Điều này có nghĩa là bạn không thể truy cập phần tử bằng chỉ số như set[0].Thứ tự hiển thị của các phần tử có thể thay đổi sau mỗi lần chạy chương trình. Vì vậy, set không phù hợp để lưu trữ dữ liệu cần sắp xếp hoặc truy cập theo vị trí, nhưng lại rất hiệu quả khi chỉ quan tâm đến sự tồn tại của phần tử.
Thứ ba: Tốc độ kiểm tra phần tử rất nhanh
Set được triển khai dựa trên cấu trúc bảng băm (hash table). Điều này giúp thao tác kiểm tra một phần tử có tồn tại trong tập hợp hay không (sử dụng toán tử in) diễn ra gần như ngay lập tức.
So với list (phải quét qua từng phần tử), set có hiệu suất vượt trội với độ phức tạp trung bình là O(1). Sự khác biệt này cực kỳ rõ rệt khi bạn xử lý các tập dữ liệu lên đến hàng triệu bản ghi. Đây chính là lý do set là “vũ khí” không thể thiếu trong các bài toán tối ưu tìm kiếm và xử lý dữ liệu lớn.
Thứ tư: Chỉ chứa các phần tử bất biến (immutable)
Một đặc điểm quan trọng khác của set trong Python là các phần tử bên trong phải là kiểu dữ liệu bất biến, chẳng hạn như:
- int
- float
- string
- tuple (chỉ chứa các phần tử bất biến)
Bạn không thể đưa list, dictionary hay set khác vào làm phần tử của một set.
Thứ năm: Có thể thay đổi nội dung (mutable)
Mặc dù các phần tử bên trong phải là bất biến, nhưng bản thân set là kiểu dữ liệu có thể thay đổi. Bạn có thể thêm, xóa hoặc cập nhật phần tử sau khi khởi tạo.

Các phương pháp tạo Set trong Python
Khi học về set trong Python, bạn cần nắm rõ các cách khởi tạo phổ biến dưới đây.
Tạo set bằng dấu ngoặc nhọn {}
Bạn có thể tạo một set bằng cách liệt kê các phần tử bên trong dấu ngoặc nhọn {} và phân tách chúng bằng dấu phẩy.
Ví dụ
numbers = {1, 2, 3, 4, 5}
print(numbers)
Kết quả hiển thị sẽ là {1, 2, 3, 4, 5}
Trong ví dụ này:
- numbers là một set chứa các số nguyên
- Các phần tử trong set là duy nhất
Lưu ý quan trọng khi tạo set bằng dấu ngoặc nhọn {}:
- Dấu ngoặc nhọn {} không tạo set rỗng mà tạo dictionary rỗng.
- Muốn tạo set rỗng, bạn bắt buộc phải dùng set()
Tạo set bằng hàm set()
Ngoài cách tạo set bằng dấu ngoặc nhọn, bạn còn có thế tạo sét bằng hàm sét (). Hàm set () cho phép chuyển đổi các kiểu dữ liệu khác như list, tuple hoặc string thành set.
Ví dụ:
Dữ liệu ban đầu (list)
student_ids = [“HS01”, “HS02”, “HS03”, “HS01”, “HS04”, “HS02”]
Tạo set bằng hàm set()
unique_student_ids = set(student_ids)
print(unique_student_ids)
Kết quả sẽ là {“HS01”, “HS02”, “HS03”, “HS04”}
Tạo set rỗng
Set rỗng là một set chưa chứa phần tử nào. Để tạo một set rỗng, bạn bắt buộc phải dùng hàm set():
Cú pháp:
empty_set = set()

Các thao tác cơ bản với Set trong Python
Sau khi hiểu khái niệm và cách tạo, việc nắm vững các thao tác với set trong Python là điều bắt buộc khi học lập trình.
- Thêm phần tử vào set
Để thêm một phần tử mới vào set, ta sử dụng phương thức add():
Ví dụ: my_set.add(5)
- Thêm nhiều phần tử cùng lúc
Trong trường hợp phải bổ sung nhiều phần tử vào Set, ta dùng update() để thêm:
Ví dụ: my_set.update([6, 7, 8])

- Xóa phần tử khỏi set
Python cung cấp nhiều cách xóa phần tử, mỗi cách phù hợp với từng tình huống cụ thể:
- remove(): Xóa một phần tử xác định, nếu phần tử không tồn tại, chương trình sẽ báo lỗi.
- discard(): Xóa phần tử nếu tồn tại, không gây lỗi nếu phần tử không có trong set
- pop(): Xóa ngẫu nhiên một phần tử trong set và đưa set về trạng thái rỗng
- Kiểm tra phần tử trong set
Bạn có thể kiểm tra nhanh một phần tử có tồn tại trong set hay không bằng toán tử in:
Ví dụ:
if 2 in my_set:
print(“Có trong set”)
Học Python tại Code Dream – Nắm vững Set và tư duy lập trình
Hiểu rõ set trong Python không chỉ giúp bạn làm chủ một kiểu dữ liệu quan trọng, mà còn rèn luyện tư duy logic và nền tảng thuật toán. Tuy nhiên, để sử dụng thành thạo set trong các bài toán thực tế, người học cần một lộ trình bài bản và phương pháp học đúng đắn. Và nếu bạn vẫn đang phân vân không biết biết học Python ở đâu uy tín thì đừng bỏ qua Code Dream nhé!
Tại Code Dream, học viên được đào tạo Python theo hướng từ cơ bản đến nâng cao, tập trung vào bản chất của từng kiểu dữ liệu như list, set, dictionary và cách ứng dụng chúng trong giải quyết bài toán. Giáo trình độc quyền được xây dựng rõ ràng, dễ hiểu, giúp học sinh nắm chắc kiến thức nền tảng thay vì học máy móc.

Không chỉ dừng lại ở lý thuyết, các khóa học Python tại Code Dream còn chú trọng thực hành, luyện lập trình thuật toán, giúp học viên tự tin xử lý các dạng bài nâng cao, thi Tin học trẻ, HSG hoặc tiếp cận lập trình thi đấu trong tương lai.
Trên đây là toàn bộ kiến thức cơ bản về set trong Python, từ khái niệm, đặc điểm, cách tạo cho đến các thao tác thường dùng. Việc nắm vững set sẽ giúp bạn viết code gọn gàng, tối ưu và hiệu quả hơn. Nếu bạn đang tìm một lộ trình học Python bài bản, dễ hiểu và chuyên sâu, Code Dream chính là lựa chọn đáng cân nhắc.





