Kiểu dữ liệu Set trong Python

Lập trình Python cơ bản

4.6 (22 đánh giá)
Tạo bởi Kteam Cập nhật lần cuối 3 năm trước 109.718 lượt xem 36 bình luận
Tác giả/Dịch giả: Kteam Nông Thanh Toàn
Học nhanh

Danh sách bài học

01. Giới thiệu ngôn ngữ lập trình Python 02. Cài đặt môi trường Python 03. Cách chạy chương trình Python 04. Cách ghi chú trong Python 05. Biến trong Python 06. Kiểu dữ liệu số trong Python 07. Kiểu dữ liệu chuỗi trong Python - Phần 1 08. Kiểu dữ liệu chuỗi trong Python - Phần 2 09. Kiểu dữ liệu chuỗi trong Python - Phần 3 10. Kiểu dữ liệu chuỗi trong Python - Phần 4 11. Kiểu dữ liệu chuỗi trong Python - Phần 5 12. Kiểu dữ liệu List trong Python - Phần 1 13. Kiểu dữ liệu List trong Python - Phần 2 14. Kiểu dữ liệu Tuple trong Python 15. Sự khác nhau về toán tử của Hashable object và Unhashable object trong Python 16. Kiểu dữ liệu Set trong Python 16. Kiểu dữ liệu Set trong Python – Phần 2 17. Kiểu dữ liệu Dict trong Python - Phần 1 18. Kiểu dữ liệu Dict trong Python - Phần 2 19. Xử lý file trong Python 20. Iteration và một số hàm hỗ trợ cho iteration object trong Python 21. Nhập xuất trong Python - Hàm xuất 22. Nhập xuất trong Python - Hàm nhập 23. Kiểu dữ liệu Boolean trong Python 24. Cấu trúc rẽ nhánh trong Python 25. Vòng lặp While trong Python 26. Vòng lặp For trong Python - Phần 1 27. Vòng lặp For trong Python - Phần 2 28. Kiểu dữ liệu Function trong Python - Sơ lược về hàm 29. Kiểu dữ liệu Function trong Python - Positional và keyword argument 30. Kiểu dữ liệu Function trong Python - Packing và unpacking arguments 31. Kiểu dữ liệu Function trong Python - Biến locals và globals 32. Kiểu dữ liệu Function trong Python - Return 33. Kiểu dữ liệu function trong Python – Yield 34. Kiểu dữ liệu function trong Python – Lambda 35. Kiểu dữ liệu Function trong Python - Functional tools 36. Kiểu dữ liệu Function trong Python - Đệ quy (recursion) 37. Giới thiệu module trong Python 38. Package trong python

Kiểu dữ liệu Set trong Python

Dẫn nhập

Trong các bài trước, Kteam đã giới thiệu đến bạn một số container của Python.

Ở bài này Kteam sẽ giới thiệu tới bạn một container khác đó chính KIỂU DỮ LIỆU SET trong Python.


Nội dung

Để đọc hiểu bài này tốt nhất bạn cần:

Trong bài này, chúng ta sẽ cùng tìm hiểu các vấn đề

  • Giới thiệu về Set trong Python
  • Cách khởi tạo Set
  • Một số toán tử với Tuple trong Python
  • Indexing và cắt Set trong Python
  • Các phương thức của Set
  • Set không phải là một hash object

Giới thiệu về Set trong Python

Set là một container, tuy nhiên không được sử dụng nhiều bằng LIST hay TUPLE.

Một Set gồm các yếu tố sau:

  • Được giới hạn bởi cặp ngoặc {}, tất cả những gì nằm trong đó là những phần tử của Set.
  • Các phần tử của Set được phân cách nhau ra bởi dấu phẩy (,).
  • Set không chứa nhiều hơn 1 phần tử trùng lặp

Set chỉ có thể chứa các hashable object nhưng chính nó không phải là một hashable object. Do đó, bạn không thể chứa một set trong một set.

Ví dụ: 


Cách khởi tạo Set

Sử dụng cặp  dấu ngoặc {} và đặt giá  trị bên trong

Cú pháp:

{<giá trị thứ nhất>, <giá trị thứ hai>, .., <giá trị thứ n – 1>, <giá trị thứ n>}

Lưu ý: Khi khởi tạo bằng cách này, ít nhất phải có một giá trị.

Ví dụ:


Sử dụng Set Comprehension


Sử dụng constructor Set

Cú pháp:

set(iterable)

Công dụng: Giống hoàn toàn với việc bạn sử dụng constructor List. Khác biệt duy nhất là constructor Set sẽ tạo ra một Set.

Ví dụ: 


Một số toán tử với Set trong Python

Nhằm giúp các bạn dễ hiểu hơn về các toán tử với Set trong Python, Kteam minh họa các set dưới dạng biểu đồ Venn, với S1, S2 tương ứng các Set1, Set2 chứa các phần tử.

Toán tử in

Cú pháp:

value in <Set>

Công dụng: Kết quả trả về là True nếu value xuất hiện trong Set. Ngược lại sẽ là False

Ví dụ:


Toán tử -

Cú pháp:

<Set1> - <Set2>

Công dụng: Kết quả trả về là một Set gồm các phần tử chỉ tồn tại trong Set1 mà không tồn tại trong Set2

Kiểu dữ liệu Set trong Python

Ví dụ:


Toán tử &

Cú pháp:

<Set1> & <Set2>

Công dụng: Kết quả trả về là một Set chứa các phần tử vừa tồn tại trong Set1 vừa tồn tại trong Set2

Kiểu dữ liệu Set trong Python

Ví dụ:


Toán tử |

Cú pháp:

<Set1> | <Set2>

Công dụng:  Kết quả trả về là một Set chứa tất cả các phần tử tồn tại trong hai Set

Kiểu dữ liệu Set trong Python

Ví dụ:


Toán tử ^

Cú pháp:

<Set1> ^ <Set2>

Công dụng:  Kết quả trả về là một Set chứa tất cả các phần tử chỉ tồn tại ở một trong hai Set

Kiểu dữ liệu Set trong Python

Ví dụ:


Indexing và cắt Set trong Python

Ở trên Kteam đã đề cập về việc set không quan tâm đến vị trí của phần tử nằm trong set. Nên, việc indexing và cắt set trong Python không được hỗ trợ.


Set không phải là một hash object

Đúng như vậy! Điều đó có thể chứng minh theo hai cách:

Ở ví dụ dưới, bạn cũng thấy, ta đã thay đổi nội dung của set nhưng id của set vẫn là id ban đầu

Ví dụ:

Thêm nữa, set không thể chứa một set khác


Củng cố bài học

Câu hỏi củng cố

Giải thích lí do tại sao lại có sự thay đổi ở set a? Cho giải pháp khắc phục?

Đáp án của phần này sẽ được trình bày ở bài tiếp theo. Tuy nhiên, Kteam khuyến khích bạn tự trả lời các câu hỏi để củng cố kiến thức cũng như thực hành một cách tốt nhất! 


Kết luận

Bài viết này đã giới thiệu cho các bạn KIỂU DỮ LIỆU SET TRONG PYTHON.

Ở bài sau, Kteam sẽ nói về một kiểu dữ liệu khác của Python chính là KIỂU DỮ LIỆU DICT (DICTIONARY).

Cảm ơn bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của mình để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách – Không ngại khó”.


Tải xuống

Tài liệu

Nhằm phục vụ mục đích học tập Offline của cộng đồng, Kteam hỗ trợ tính năng lưu trữ nội dung bài học Kiểu dữ liệu Set trong Python dưới dạng file PDF trong link bên dưới.

Ngoài ra, bạn cũng có thể tìm thấy các tài liệu được đóng góp từ cộng đồng ở mục TÀI LIỆU trên thư viện Howkteam.com

Đừng quên likeshare để ủng hộ Kteam và tác giả nhé!


Thảo luận

Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.

Tác giả/Dịch giả

Khóa học

Lập trình Python cơ bản

Lập trình Python cơ bản

Đánh giá

4.6
22 đánh giá
Đánh giá
5
20
4
3
2
1
2
khang.nguyen đã đánh giá 2 năm trước

ducnhan254 đã đánh giá 2 năm trước

Lê Phạm Minh Long đã đánh giá 3 năm trước

nice

HoàngLong đã đánh giá 3 năm trước

Điinh Văn đã đánh giá 3 năm trước

rất chất lượng

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
hikiru034 đã bình luận khoảng 1 tháng trước

vì khi cho a = b, ta đag trỏ vào cùng 1 vị trí để lấy dữ liệu, tức id(a) = id(b), chỗ lưu trữ ko thay đổi gix 2 thằng nên khi ta thay đổi gtrị của 1 trg 2 thì cả 2 sẽ thay đổi gtrị

xuanthomtp1920 đã bình luận khoảng 1 năm trước

a = {1, 2}
b = a.copy()
print(a is b)
print(b.clear())
print(a)
 

asmodeusnguyen đã bình luận khoảng 1 năm trước

ID của biến A thay đổi theo biến B do cú pháp gán (b=a). 

Có thể khắc phục bằng cách cho biến B tạo bản sao của biến A (b = a.copy())

a = {1, 2} 

b = a.copy()

b.clear()

print(a)

print(b)

Bui Van tu đã bình luận 2 năm trước

giải pháp dùng

b=set(a)

hoặc b=a.cpoy()

haiha000 đã bình luận 2 năm trước

giải pháp

b = a.copy()

mình nghĩ là lệnh copy sẽ tạo ra nội dung y hệt nhưng được lưu với id khác. Mạnh dạn đoán vậy không biết đúng không

Không có video.