Thêm 2 bộ trăn

Python khác với các ngôn ngữ lập trình khác, nó đưa ra rất nhiều cấu trúc dữ liệu dạng đa giá trị, trong bài trước chúng ta đã nghiên cứu về Danh sách và Tuple, bài này chúng ta tìm hiểu về hai cấu trúc dữ liệu tiếp theo

  Hiểu về setTimeout và setInterval trong Javascript

  20 tài liệu học Python thiết thực để trở thành lập trình viên chuyên nghiệp

Xem thêm nhiều việc làm Python lương cao trên TopDev

Thêm 2 bộ trăn
Thêm 2 bộ trăn

1. Tập hợp (Set)

Đặt trong Python là một cấu trúc dữ liệu cấu trúc liên quan đến tập hợp toán học hay còn gọi là lý thuyết tập hợp do nhà toán học người Đức Georg Cantor đề xuất. Set could contain many other element and this section are not have athứ tự, vị trí của nó hỗn loạn trong tập hợp. Bạn có thể duyệt qua các phần tử trong tập hợp, có thể thêm hoặc xóa các phần tử và thực hiện các phép toán của tập tin như phép hợp nhất (union), phép giao (giao), phép hiệu (difference)…

Các phần tử của tập hợp phải là dữ liệu không thể thay đổi thành một số (int), một chuỗi (chuỗi) hoặc một Tuple

1. 1 Khai báo tập hợp

Tập hợp (Set) trong Python có một số tính chất mà bạn cần nhớ

  • Các phần tử trong tập hợp không có thứ tự
  • Các phần tử này là duy nhất, không cho phép lặp lại
  • Đặt có thể thay đổi (giảm phần tử) nhưng các phần tử của tập hợp phải ở định dạng không thể thay đổi (tức là xác định dung lượng bộ nhớ ngay khi khai báo)

Chúng ta sử dụng các dấu ngoặc kép trong báo cáo Đặt, ví dụ

friends = {"Rolf","Bob","Anne"}
print(friends)

Chú thích

  • [] sử dụng khai báo Danh sách
  • () sử dụng khai báo Tuple
  • {} sử dụng khai báo Set

1. 2 Change file composit

Các phần tử trong tập hợp có thể thêm hoặc loại bỏ. Python hỗ trợ rất nhiều phương thức để thực hiện thao tác thay đổi tập hợp

1. 2. 1 Phương thức. cộng()

Phương thức sử dụng để thêm một phần tử vào tập hợp

Ví dụ

friends = {"Rolf","Bob","Anne"}
friends.add("Jen")
print(friends) # Kết quả là {"Bob","Jen","Anne","Rolf"}

Chú ý, kết quả có thể khác đi Set không sắp xếp các phần tử theo một trật tự nào cả

1. 2. 2 Phương thức. gỡ bỏ()

Loại bỏ một phần tử trong tập hợp

Ví dụ

friends = {"Rolf","Bob","Anne"}
friends.remove("Anne")
print(friends) # Kết quả là {"Rolf","Bob"}
friends.remove("Jen")
print(friends) # Kết quả là lỗi KeyError: "Jen"

Khi loại bỏ một phần tử, nếu phần tử đó không tồn tại trong tập hợp, chương trình sẽ dừng và một thông báo lỗi KeyError xuất hiện

1. 2. 3 Phương thức. loại bỏ()

Giống như phương thức. remove() loại bỏ phần tử trong tập hợp, tuy nhiên nếu phần tử đó không tồn tại thì nó không báo lỗi gì cả

friends = {"Rolf","Bob","Anne"}
friends.discard("Anne")
print(friends) # Kết quả là {"Rolf","Bob"}
friends.discard("Jen")
print(friends) # Kết quả là {"Rolf","Bob"}

1. 2. 4 Phương thức. nhạc pop()

Loại bỏ một phần tử ngẫu nhiên khỏi tập hợp

friends = {"Rolf","Bob","Anne"}
friends.pop()
print(friends) # Kết quả là {"Bob","Rolf"}

Bạn cần chú ý về thứ tự các phần tử trong tập hợp, nó không được sắp xếp theo bất kỳ quy tắc nào

1. 2. 5 Phương thức. xa lạ()

Loại bỏ tất cả các phần tử trong tập hợp, khi tập hợp đó được gọi là tập rỗng

friends = {"Rolf","Bob","Anne"}
friends.clear()
print(friends) # Kết quả là set()

1. 2. 6 Phương thức. cập nhật()

Phương thức. add() at on only add 1 section tử vào file được hợp nhất với 1 câu lệnh, để thêm nhiều phần tử, chúng ta sử dụng. cập nhật(). Chú thích, đầu vào của. update() could be a Set, a List or a Tuple

friends = {"Rolf","Bob","Anne"}
friends.update(["Jen","Charlie"],{"Jonhny", "Sara"},("Laura","Elite"))
print(friends) # Kết quả là {'Anne', 'Laura', 'Elite', 'Rolf', 'Jonhny', 'Charlie', 'Bob', 'Sara', 'Jen'}

Kết quả của bạn có thể có thứ tự sách khác đi, một chú ý nữa là không sử dụng chuỗi để cập nhật vào tập hợp mà các phần tử là chuỗi bởi vì chuỗi sẽ được coi là một danh sách các ký tự, ví dụ:

friends = {"Rolf","Bob","Anne"}
friends.update("Jen")
print(friends) # Kết quả là {'n', 'e', 'Rolf', 'Bob', 'Anne', 'J'}

Không như mong đợi phải không, bạn có thể sử dụng phương thức. add() or can convert string to Set, List or Tuple has 1 element

________số 8

Có một số cập nhật phương thức khác như. Difference_update(),. symmetric_difference_update() hay. giao_update() nó có liên quan đến các phép tính toán trong tập hợp nên sẽ hiển thị ở phần tiếp theo

1. 3 Các phép toán trong tập hợp

Các tập hợp có lợi hơn các cấu trúc dữ liệu khác ở chỗ nó thực hiện được các tập hợp toán được phép như hợp, hiệu, giao… Để mô tả dễ hiểu hơn, chúng ta có hai tập hợp art_friends và science_friends là tập hợp

art_friends = {"Rolf", "Anne", "Jen"}
science_friends = {"Jen", "Charlie"}

Các phép toán được mô tả như hình sau

Thêm 2 bộ trăn
Thêm 2 bộ trăn

1. 3. 1 Control Union (Liên minh)

Kết quả hợp nhất của hai tập hợp là tất cả các phần tử trong hai tập hợp, lưu ý rằng phần tử nào lặp lại sẽ chỉ xuất hiện 1 lần trong kết quả tập tin. Trong Python, để thực hiện phép hợp lệ, chúng ta sử dụng phương thức. liên hiệp(). Chú ý, sử dụng tập hợp nào trước cũng cho kết quả như nhau, art_friends. union(science_friends) cũng cho kết quả như science_friends. công đoàn(art_friends)

friends = {"Rolf","Bob","Anne"}
friends.add("Jen")
print(friends) # Kết quả là {"Bob","Jen","Anne","Rolf"}
0

Chú ý, “Jen” có mặt ở cả hai lớp nhưng với tập kết quả cuối cùng thì “Jen” chỉ xuất hiện 1 lần

1. 3. 2 Phép trừ (Difference)

Hiệu quả của một tập tin A, trừ một tập tin B cho kết quả là tất cả các phần tử thuộc A nhưng không thuộc B. Use method. khác biệt() để thực hiện cho phép loại trừ hai tập hợp

friends = {"Rolf","Bob","Anne"}
friends.add("Jen")
print(friends) # Kết quả là {"Bob","Jen","Anne","Rolf"}
1

Trong ví dụ trên, tập hợp art_but_not_science bao gồm các bạn học lớp Mỹ thuật nhưng không học lớp Khoa học, chú ý “Jen” học cả hai lớp nên không có mặt trong tập hợp này

1. 3. 3 Hiệu đối xứng của hai tập hợp (Sự khác biệt đối xứng)

Hiệu quả đối xứng của hai tập A và B được kết quả là tập hợp các phần tử thuộc cả A và B nhưng không đồng thời thuộc cả tập A và B. Phương thức. symmetric_difference() cho kết quả là hiệu đối xứng của hai tập hợp. Chú ý, làm tính chất đối xứng nên art_friends. symmetric_difference(science_friends) và science_friends. symmetric_difference(art_friends) cho kết quả như nhau

friends = {"Rolf","Bob","Anne"}
friends.add("Jen")
print(friends) # Kết quả là {"Bob","Jen","Anne","Rolf"}
2

1. 3. 4 Phép giao (Giao lộ)

Kết quả giao hai tập hợp bộ là các phần tử đồng thời thuộc về cả hai tập hợp. Trong Python used method method. giao nhau () để thực hiện cho phép giao, chú thích tập hợp nào đứng trước cũng được, do đó dẫn đến kết quả art_friends. giao điểm(science_friends) và science_friends. giao nhau(art_friends) is as together

friends = {"Rolf","Bob","Anne"}
friends.add("Jen")
print(friends) # Kết quả là {"Bob","Jen","Anne","Rolf"}
3

Tập hợp nghệ thuật và khoa học bao gồm các bạn học đồng thời cả lớp Mỹ thuật và lớp Khoa học, kết quả là chỉ có “Jen” học cả hai lớp này

1. 3. 5 Thay đổi tập hợp dựa trên phép toán tập hợp

Trong phần trước chúng ta đã biết đến phương thức. update() để thêm nhiều phần tử vào một tập hợp. Dựa vào sự cho phép của tập tin toán học, Python cung cấp một số phương thức khác để thay đổi tập hợp như sau

Difference_update()

Phương thức này là sự kết hợp của. khác biệt() và. cập nhật(). Nó thực sự cho phép loại trừ tập hợp trước, được kết quả như thế nào sẽ cập nhật vào tập hợp đích

friends = {"Rolf","Bob","Anne"}
friends.add("Jen")
print(friends) # Kết quả là {"Bob","Jen","Anne","Rolf"}
4

symmetric_difference_update()

Phương thức này là sự kết hợp của. symmetric_difference() và. cập nhật(). Nó thực sự cho phép loại trừ đối sánh 2 tập hợp trước, được kết quả như thế nào sẽ cập nhật vào tập hợp đích

friends = {"Rolf","Bob","Anne"}
friends.add("Jen")
print(friends) # Kết quả là {"Bob","Jen","Anne","Rolf"}
5

giao lộ_update()

Tương tự, Python thực hiện. giao lộ() trước sau đó thực hiện. cập nhật()

friends = {"Rolf","Bob","Anne"}
friends.add("Jen")
print(friends) # Kết quả là {"Bob","Jen","Anne","Rolf"}
6

1. 3. 6 Một số phép toán khác

isdisjoint() Trả về True nếu hai tập hợp không giao tiếp, tức là hai tập hợp không có phần tử chung

friends = {"Rolf","Bob","Anne"}
friends.add("Jen")
print(friends) # Kết quả là {"Bob","Jen","Anne","Rolf"}
7

Ở đây, chúng ta sử dụng toán tử logic not để thực hiện trả về True khi hai tập tin giao tiếp với nhau, nghe nó thuận tai hơn. D

issubset() Trả về True nếu tệp này còn tệp con của tệp đích (tệp trong trích)

friends = {"Rolf","Bob","Anne"}
friends.add("Jen")
print(friends) # Kết quả là {"Bob","Jen","Anne","Rolf"}
8

issuperset() Trả về True nếu tệp này là tệp cha của tệp đích (tệp trong trích)

friends = {"Rolf","Bob","Anne"}
friends.add("Jen")
print(friends) # Kết quả là {"Bob","Jen","Anne","Rolf"}
9

Ngoài ra, chúng ta có thể sử dụng các ký hiệu cho phép so sánh thông thường để kiểm tra xem là tập con, tập cha hay hai tập bằng nhau với >, >=, ==, <, <=

friends = {"Rolf","Bob","Anne"}
friends.remove("Anne")
print(friends) # Kết quả là {"Rolf","Bob"}
friends.remove("Jen")
print(friends) # Kết quả là lỗi KeyError: "Jen"
0

1. 4 “Đóng băng” tập hợp (Frozen Set)

Python cung cấp tên hàm là Frozenset(), kết quả trả về là một tập hợp (Set) không thể thay đổi. Khi đó, nếu bạn thực hiện các phương thức. cộng(),. gỡ bỏ(),. update()… sẽ báo lỗi

“Đóng băng” tập hợp sẽ làm cho tập hợp đó giống như cấu trúc Tuple trong Python

friends = {"Rolf","Bob","Anne"}
friends.remove("Anne")
print(friends) # Kết quả là {"Rolf","Bob"}
friends.remove("Jen")
print(friends) # Kết quả là lỗi KeyError: "Jen"
1

Đóng băng một tập hợp rất hữu ích trong trường hợp bạn muốn tập hợp đó không thể thay đổi. Ví dụ khi sử dụng một tập hợp làm chìa khóa cho một từ điển (Dictionary), sẽ được giới thiệu trong phần tiếp theo

friends = {"Rolf","Bob","Anne"}
friends.remove("Anne")
print(friends) # Kết quả là {"Rolf","Bob"}
friends.remove("Jen")
print(friends) # Kết quả là lỗi KeyError: "Jen"
2

Tuy nhiên, nếu bạn đóng băng các tập hợp này, sẽ không có bất kỳ lỗi nào xảy ra.

friends = {"Rolf","Bob","Anne"}
friends.remove("Anne")
print(friends) # Kết quả là {"Rolf","Bob"}
friends.remove("Jen")
print(friends) # Kết quả là lỗi KeyError: "Jen"
3

2. Tập hợp sử dụng khi nào?

Toán tập hợp hay lý thuyết tập hợp là một trong những phần quan trọng của Toán học mà Khoa học dữ liệu (khoa học dữ liệu) và Machine Learning sử dụng kiến ​​thức toán học rất nhiều, do đó tập hợp toán trong Python là một phần không thể . Ngay từ đầu Python đã được phát triển cho mục đích Khoa học và Giáo dục, do đó bạn có thể thấy các thiết kế mang hơi hướng Khoa học

Tập hợp cũng là một nhóm các dữ liệu giống như Danh sách và Tuple nhưng nó lại được xây dựng sẵn các tập hợp toán cho phép, do đó tập hợp sẽ được sử dụng khi chương trình của bạn cần được phép tập hợp như toán học. liên hiệp(),. Sự khác biệt(),. giao lộ()… Để lựa chọn cấu trúc dữ liệu phù hợp, bạn cần nắm rõ những đặc điểm của từng loại, ở đây Set có những đặc điểm mà tôi đã đưa ra ở phần đầu, dưới đây chỉ cần nhắc lại