Sự khác biệt giữa sự khác biệt và sự khác biệt đối xứng trong python là gì?

Bộ là cấu trúc dữ liệu, dựa trên các quy tắc cụ thể mà chúng xác định, cung cấp một số thao tác thú vị nhất định và đảm bảo làm cho nhiều thứ dễ dàng hơn khi chúng ta sử dụng chúng

Hai quy tắc cơ bản chúng ta cần biết là những

  • Các mục trong một bộ là duy nhất. Chúng ta không thể có một tập hợp chứa hai phần tử bằng nhau
  • Các mục trong một bộ không được đặt hàng. Tùy thuộc vào cách triển khai, các mục có thể được sắp xếp bằng hàm băm của giá trị được lưu trữ, nhưng khi bạn sử dụng bộ, bạn cần giả định rằng các mục được sắp xếp theo cách ngẫu nhiên

Và một sự đảm bảo tuyệt vời mà họ cung cấp cho chúng tôi. Kiểm tra xem một phần tử có mặt trên một tập hợp có hằng số phức tạp về thời gian (O(1)) hay không, luôn luôn. Điều này có nghĩa là, việc kiểm tra xem một tập hợp có chứa phần tử hay không là siêu nhanh

Cách triển khai phổ biến nhất của một tập hợp được sử dụng để đạt được điều này là tập hợp băm. Đơn giản hóa, về cơ bản, nó lưu trữ các mục trong kho khóa-giá trị, trong đó khóa là hàm băm của giá trị được lưu trữ

Vì vậy, để tạo một tập hợp trong Python, chúng tôi sử dụng hàm tạo

Hello, dog!
Hello, parrot!
Hello, cat!
0 nhận bất kỳ lần lặp nào.
Hello, dog!
Hello, parrot!
Hello, cat!
1 (không, tôi không có vẹt, cũng không có mèo, chó ở đây)

Dấu ngoặc nhọn cũng có thể được sử dụng, điều này sẽ tránh tạo danh sách trung gian, nhưng vì chúng cũng được sử dụng cho từ điển nên bạn không thể tạo tập trống có dấu ngoặc nhọn. Ngoài ra, ai đó có thể bị nhầm lẫn, vì vậy tôi tránh họ và bám vào nhà xây dựng

Bộ là bộ sưu tập, do đó chúng có thể lặp lại

my_pets = set(['dog', 'cat', 'parrot'])
for pet in my_pets:
    print('Hello, {}!'.format(pet))

Chương trình trên dùng để minh họa cách các phần tử trong một tập hợp được sắp xếp theo thứ tự, bên dưới là kết quả của chương trình nơi bạn có thể thấy thứ tự mà tôi đã xác định không được trình thông dịch tôn trọng

Hello, dog!
Hello, parrot!
Hello, cat!

Vì vậy, với thông tin này, chúng ta hãy đi sâu vào các hoạt động thú vị này

Ngã tư

Giao giữa hai tập hợp tạo thành tập hợp thứ ba chứa các phần tử có trong cả hai

Ví dụ: nếu tôi tính giao điểm giữa

Hello, dog!
Hello, parrot!
Hello, cat!
2 và
Hello, dog!
Hello, parrot!
Hello, cat!
3, kết quả sẽ là
Hello, dog!
Hello, parrot!
Hello, cat!
4

Nếu điều này giúp bạn hiểu, thì đây là một triển khai đơn giản trong Python

a = set([1, 2, 3])
b = set([2, 3, 4])
result = {element for element in a if element in b}
print(result)

Trời ạ, Python tuyệt vời hay sao? . Dù sao, điều đó không liên quan vì Python cung cấp chức năng để thực hiện việc này như một phần của thư viện chuẩn của nó. Điều tương tự có thể đạt được với những điều sau đây

a = set([1, 2, 3])
b = set([2, 3, 4])
result = a.intersection(b)
print(result)

Lưu ý rằng, do bản chất của hoạt động,

Hello, dog!
Hello, parrot!
Hello, cat!
6 và
Hello, dog!
Hello, parrot!
Hello, cat!
7 giống nhau. Đó là phép toán giao hoán

liên hiệp

Hợp giữa hai tập hợp, dẫn đến một tập hợp thứ ba với tất cả các phần tử từ cả hai tập hợp

Ví dụ: nếu tôi tính phép hợp giữa

Hello, dog!
Hello, parrot!
Hello, cat!
2 và
Hello, dog!
Hello, parrot!
Hello, cat!
3, kết quả sẽ là
a = set([1, 2, 3])
b = set([2, 3, 4])
result = {element for element in a if element in b}
print(result)
0. Giống như một phép nối, nhưng hãy nhớ rằng các bộ không thể có các phần tử lặp lại

Một lần nữa, hãy xem một triển khai ngây thơ trong Python

Hello, dog!
Hello, parrot!
Hello, cat!
5

Như mong đợi, đầu ra là

a = set([1, 2, 3])
b = set([2, 3, 4])
result = {element for element in a if element in b}
print(result)
0. Tuy nhiên, một lần nữa, Python cung cấp một chức năng riêng để làm điều này

Hello, dog!
Hello, parrot!
Hello, cat!
7

Lưu ý rằng, do bản chất của hoạt động,

a = set([1, 2, 3])
b = set([2, 3, 4])
result = {element for element in a if element in b}
print(result)
2 và
a = set([1, 2, 3])
b = set([2, 3, 4])
result = {element for element in a if element in b}
print(result)
3 giống nhau. Đó là phép toán giao hoán

Sự khác biệt

Sự khác biệt giữa hai tập hợp dẫn đến tập hợp thứ ba có phần tử từ tập hợp thứ nhất, không có trong tập hợp thứ hai. Ngay bây giờ tôi sẽ nói với bạn, phép toán này không có tính chất giao hoán

Ví dụ: nếu tôi có một bộ

a = set([1, 2, 3])
b = set([2, 3, 4])
result = {element for element in a if element in b}
print(result)
4 và một bộ
a = set([1, 2, 3])
b = set([2, 3, 4])
result = {element for element in a if element in b}
print(result)
5, sự khác biệt giữa
a = set([1, 2, 3])
b = set([2, 3, 4])
result = {element for element in a if element in b}
print(result)
6 là
a = set([1, 2, 3])
b = set([2, 3, 4])
result = {element for element in a if element in b}
print(result)
7 và sự khác biệt giữa
a = set([1, 2, 3])
b = set([2, 3, 4])
result = {element for element in a if element in b}
print(result)
8 là
a = set([1, 2, 3])
b = set([2, 3, 4])
result = {element for element in a if element in b}
print(result)
9

Đây là một triển khai ngây thơ

my_pets = set(['dog', 'cat', 'parrot'])
for pet in my_pets:
    print('Hello, {}!'.format(pet))
6

Điều này xuất ra

a = set([1, 2, 3])
b = set([2, 3, 4])
result = {element for element in a if element in b}
print(result)
7 như mong đợi và sẽ in ra
a = set([1, 2, 3])
b = set([2, 3, 4])
result = {element for element in a if element in b}
print(result)
9 nếu chúng ta đảo ngược
a = set([1, 2, 3])
b = set([2, 3, 4])
result = a.intersection(b)
print(result)
2 và
a = set([1, 2, 3])
b = set([2, 3, 4])
result = a.intersection(b)
print(result)
3. Một lần nữa, việc triển khai sử dụng thư viện chuẩn của Python

Hello, dog!
Hello, parrot!
Hello, cat!
1

sự khác biệt đối xứng

Sự khác biệt đối xứng giữa hai tập hợp dẫn đến tập hợp thứ ba với các phần tử, từ cả hai tập hợp, không có trên tập hợp kia

Ví dụ: nếu tôi tính chênh lệch đối xứng giữa

Hello, dog!
Hello, parrot!
Hello, cat!
2 và
Hello, dog!
Hello, parrot!
Hello, cat!
3, kết quả sẽ là
a = set([1, 2, 3])
b = set([2, 3, 4])
result = a.intersection(b)
print(result)
6. Phép toán này có tính chất giao hoán

Đây là một triển khai ngây thơ

Hello, dog!
Hello, parrot!
Hello, cat!
5

Việc triển khai ở trên sẽ in ra

a = set([1, 2, 3])
b = set([2, 3, 4])
result = a.intersection(b)
print(result)
6, như mong đợi. Tất nhiên, Python cũng có cái này trên libary tiêu chuẩn của nó.
a = set([1, 2, 3])
b = set([2, 3, 4])
result = a.intersection(b)
print(result)
8

Hello, dog!
Hello, parrot!
Hello, cat!
8

Phần kết luận

Các bộ thực sự hữu ích và thực sự khá thú vị. Hãy cho họ một thử. Tôi đã sống rất nhiều thời gian với các danh sách, và cuối cùng khi tôi ngồi xuống và học cách làm việc với các tập hợp, tôi bắt đầu tìm ra các giải pháp tốt hơn, tinh tế hơn cho rất nhiều vấn đề

Sự khác biệt và sự khác biệt đối xứng trong Python là gì?

Phương thức Python Set symmetric_difference() . Nghĩa. Bộ được trả lại chứa hỗn hợp các mặt hàng không có trong cả hai bộ. The symmetric_difference() method returns a set that contains all items from both set, but not the items that are present in both sets. Meaning: The returned set contains a mix of items that are not present in both sets.

Sự khác biệt giữa các phương thức Difference và symmetric_difference là gì?

Cách sử dụng. Phương thức symmetric_difference_update() cập nhật tập hợp bằng cách chỉ giữ lại các phần tử được tìm thấy trong một trong hai tập hợp chứ không phải trong cả hai . Nếu bạn không muốn cập nhật bộ gốc, hãy sử dụng phương thức symmetric_difference().

Sự khác biệt đối xứng giữa A và B trong Python là gì?

Phương thức symmetric_difference() trong Python dành cho hai phần tử A và B được sử dụng để trả về tập hợp các phần tử chứa trong cả A và B nhưng không phổ biến trong cả hai. In other words, it is used to produce the symmetric difference between two sets.

Sự khác biệt và sự khác biệt đối xứng trong tập hợp là gì?

Hiệu đối xứng giữa hai tập hợp . Nó được biểu diễn bởi A ⊝ B và được đọc là hiệu đối xứng của tập hợp A và B. The set which contains the elements which are either in set A or in set B but not in both is called the symmetric difference between two given sets. It is represented by A ⊝ B and is read as a symmetric difference of set A and B.