Python dainganxanh
  • Lời nói đầu
  • Chương I. SƠ LƯỢC
    • Bài 1. Cài đặt môi trường
    • Bài 2. Từ khóa và định danh
    • Bài 3. Câu lệnh, khối lệnh và chú thích
    • Bài 4. Nhập, xuất dữ liệu
    • Bài 5. Toán tử và lệnh gán
    • Bài 6. Biến, Hằng
    • Bài 7. Kiểu dữ liệu
    • Bài 8. Thao tác với tệp (cơ bản)
    • Bài 9. Tổng quan về Python
    • Bài tập chương 1
  • Chương II. RẼ NHÁNH - LẶP
    • Bài 10. Cấu trúc rẽ nhánh if…else
    • Bài 11. Cấu trúc lặp với for
    • Bài 12. Cấu trúc lặp với while
    • Bài 13. Lệnh break và continue
    • Bài tập chương 2
  • Chương III. HÀM & MODULE
    • Bài 14. Hàm
    • Bài 15. Tham số hàm
    • Bài 16. Đệ quy
    • Bài 17. Hàm ẩn danh
    • Bài 18. Biến toàn cục và cục bộ
    • Bài 19. Module
    • Bài 20. Package
  • Chương IV. KIỂU DỮ LIỆU
    • Bài 21. Dữ liệu kiểu số
    • Bài 22. Dữ liệu kiểu string
    • Bài 23. Dữ liệu kiểu list
    • Bài 24. Dữ liệu kiểu tuple
    • Bài 25. Dữ liệu kiểu set
    • Bài 26. Dữ liệu kiểu dictionary
  • Chương V. TỆP & THƯ MỤC
    • Bài 27. Đọc và ghi file
    • Bài 28. Quản lý file và folder
  • Chương VI. LỖI & NGOẠI LỆ
    • Bài 29. Ngoại lệ
    • Bài 30. Xử lý ngoại lệ
    • Bài 31. Xây dựng ngoại lệ
  • Chương VII. HƯỚNG ĐỐI TƯỢNG
    • Bài 32. Lập trình hướng đối tượng
    • Bài 33. Đối tượng và Lớp
    • Bài 34. Kế thừa
    • Bài 35. Đa kế thừa
    • Bài 36. Nạp chồng toán tử
  • Chương VIII. NGÀY - GIỜ
    • Python datetime
    • Python strftime()
    • Python strptime()
    • Current date and time
    • Get Current time
    • Timestamp to datetime
    • Python time Module
    • Python sleep()
  • Chương IX. CHỦ ĐỀ NÂNG CAO
    • Python Iterators
    • Python Generators
    • Python Closures
    • Python Decorators
    • Python @property decorator
    • Python RegEx
    • Python Examples
  • PHỤ LỤC - GHI CHÉP
    • Hàm map()
    • Cài Sublime Text để code Python
    • Ghi chép - ghi chú
    • Mảng 2 chiều
    • Công thức với dãy số
  • Tài liệu tham khảo
  • www.dainganxanh.com
  • 🐍Khóa học Python
  • 🤷‍♀️Hỏi đáp, chia sẻ (FG)
  • 🎮Sinh Test chấm Themis
Powered by GitBook
On this page
  • Khởi tạo set
  • Thêm, sửa, xóa phần tử set
  • Thêm
  • Xóa
  • Các phép toán trên set
  • Phương thức của set
  • Hàm dựng sẵn cho set
  • Frozenset
  • Thao tác khác
  • Kiểm tra phần tử chứa trong set
  • Lặp theo phần tử set

Was this helpful?

  1. Chương IV. KIỂU DỮ LIỆU

Bài 25. Dữ liệu kiểu set

Set là một tập hợp các phần tử không có thứ tự. Mọi phần tử trong set là duy nhất (không trùng lặp) và bất biến (không thể thay đổi). Phần tử của set có thể có kiểu dữ liệu bất kỳ trừ list và chính nó.

Khởi tạo set

s1 = set([1,2,3,4])
s2 = {3, 4, 5}
print(s1)
print(s2)

ms = {1.0, "Hello", (1, 2, 3)}
print(ms)

Xét thêm các ví dụ sau để thấy set không chứa phần tử trùng lặp.

s = {1, 2, 3, 4, 3, 2}
print(s)                # Output chỉ còn: {1, 2, 3, 4}

s = set([1, 2, 3, 2])   
print(s)                # {1, 2, 3}

Lưu ý: Ta không thể khởi tạo một set rỗng như cách làm với list và tuple. Ví dụ:

s = {}
print(s)
print(type(s))    # <class 'dict'> - lúc này Python nhận kiểu dict

s = set({})
print(s)
print(type(s))    # <class 'set'>

Thêm, sửa, xóa phần tử set

Thêm

s = {1, 3}
print(s)

# s[0]  # bỏ comment dòng 4 này sẽ phát sinh lỗi
        #vì set không cho truy cập theo chỉ số

s.add(2)
print(s) # {1, 2, 3}

s.update([2, 3, 4])
print(s) # Output: {1, 2, 3, 4}

s.update([4, 5], {1, 6, 8})
print(s) # Output: {1, 2, 3, 4, 5, 6, 8}

Xóa

Sử dụng phương thức discard() và remove(). Lưu ý phương thức remove() sẽ không hoạt động nếu phần tử chỉ định không tồn tại trong set.

s2 = {1, 3, 4, 5, 6}

s2.discard(4)     # xóa bỏ một phần tử bằng discard
print(s2)         # {1, 3, 5, 6}

s2.remove(6)      # xóa một phần tử bằng remove
print(s2)         # {1, 3, 5}

s2.discard(2)
print(s2)         # {1, 3, 5}
s2.remove(2)      # Báo lỗi KeyError vì phần tử không tồn tại

Dùng phương thức pop(), clear()

s = set("HelloWorld")
print(s)          # xem kỹ output nhé !

print(s.pop())    # phần tử đầu tiên của set

s.pop()           # xóa thêm một phần tử 
print(s)    

s.clear()
print(s)          # set rỗng: set()

Các phép toán trên set

Các phép toán trên set chính là các phép toán trên tập hợp. Xét ví dụ sau:

A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}

U = A | B    # phép hợp
print(U)     # {1, 2, 3, 4, 5, 6, 7, 8}

I = A & B    # phép giao
print(I)     # {4, 5}

D = A-B      # phép hiệu
print(D)     # {1, 2, 3}

SD = A^B     # hiệu của hợp và giao
print(SD)    # {1, 2, 3, 6, 7, 8}

Phương thức của set

Phương thức

Chú giải

Cộng thêm phần tử

Xóa rỗng set

Sao chép set

Phần khác (phép - )

Trả về set đã xóa hết các phần tử giống set khác

Xóa bỏ phần tử đầu của set

Phần giao 2 set (phép &)

Trả về phần giao 2 set

True nếu 2 set không có phần giao

True nếu set chứa trong set khác

True nếu set có chứa một set khác

Xóa phần tử đầu của set (sẽ báo lỗi nếu xóa phần tử không có trong set)

Xóa phần tử của set (sẽ báo lỗi nếu xóa phần tử không có trong set)

Trả về set là phần khác đối xứng của 2 xét khác

Trả về set là phần khác đối xứng của 2 set khác

Trả về phần hợp 2 set (phép hợp | )

Trả về một set là hợp của 2 set

Hàm dựng sẵn cho set

Các hàm dựng sẵn như all(), any(), enumerate(), len(), max(), min(), sorted(), sum(), v.v. thường được sử dụng với các set để thực hiện các tác vụ khác nhau.

Function

Description

True nếu tất cả các phần tử true (hoặc set rỗng).

True nếu set có phần tử True. False nếu set rỗng

Trả về một đối tượng liệt kê. Nó chứa chỉ số và giá trị cho tất cả các phần tử của set dưới dạng từng cặp.

Số lượng phần tử của set

Phần tử lớn nhất của set

Phần tử nhỏ nhất của set

Trả về một list gồm các phần tử của set đã được sắp xếp

Tổng các phần tử của set

Frozenset

Frozenset có các đặc điểm của set nhưng không cho phép thêm-sửa-xóa phần tử. Nếu tuple là dạng bất biến của list thì frozenset là dạng bất biến của set.

frozenset được khởi tạo bằng hàm frozenset() và được hỗ trợ các phương thức như: copy(), difference(), intersection(), isdisjoint(), issubset(), issuperset(), symmetric_difference() and union().

Dĩ nhiên là không làm việc với remove(), discard...

Ví dụ

A = frozenset([1, 2, 3, 4])
B = frozenset([3, 4, 5, 6])

U = A|B
I = A&B
D = A-B
DS = A^B

print(U) # frozenset({1, 2, 3, 4, 5, 6})
print(I) # frozenset({3, 4})
print(D) # frozenset({1, 2})
print(DS) # frozenset({1, 2, 5, 6})

Thao tác khác

Kiểm tra phần tử chứa trong set

s = set("apple")

print('a' in s)         # True
print('p' not in s)     # False

Lặp theo phần tử set

for si in set("apple"):
    print(si) # in từng ký tự trong xâu apple
PreviousBài 24. Dữ liệu kiểu tupleNextBài 26. Dữ liệu kiểu dictionary

Last updated 4 years ago

Was this helpful?

add()
clear()
copy()
difference()
difference_update()
discard()
intersection()
intersection_update()
isdisjoint()
issubset()
issuperset()
pop()
remove()
symmetric_difference()
symmetric_difference_update()
union()
update()
all()
any()
enumerate()
len()
max()
min()
sorted()
sum()