Python đặt trừ giao điểm

Trong bài viết tuần trước, bạn đã biết tất cả về bộ Python

A = {'Python', 'JavaScript', 'PHP'}
B = {'Java', 'Python', 'Ruby'}

print[f"A ∩ B = {A.intersection[B]}"]
9. Bây giờ chúng ta sẽ khám phá một hàm tập hợp thường được sử dụng khác. Giao điểm tập hợp Python cho phép bạn tìm các phần tử chung giữa hai hoặc nhiều tập hợp. Nó có nhiều ứng dụng hữu ích, chẳng hạn như tìm kiếm các kỹ năng chung giữa những người xin việc

Hôm nay bạn sẽ tìm hiểu mọi thứ về giao điểm tập hợp Python. Bạn sẽ sẵn sàng sử dụng nó một cách tự tin sau khi đọc bài viết

Phần tốt nhất?

Giao điểm tập hợp Python - Khái niệm cơ bản

Vì vậy, Python đặt giao điểm là gì? . Bạn sẽ hiểu đầy đủ về định nghĩa, cú pháp và giá trị trả về thông qua các ví dụ trực quan

Định nghĩa và cách sử dụng

Hàm giao của tập hợp trả về [các] phần tử chung của hai hoặc nhiều tập hợp. Ví dụ: tôi thích viết mã bằng Python, JavaScript và PHP còn bạn sử dụng Java, Python và Ruby. Cả hai chúng tôi đều có điểm chung Python. Chúng ta sẽ làm việc với hai tập hợp xuyên suốt bài viết chỉ để đơn giản hóa mọi thứ, nhưng logic tương tự cũng được áp dụng khi cắt nhiều tập hợp hơn

Hãy xem hai bộ sau đây

Hình 1 - Hai bộ ngôn ngữ lập trình [ảnh của tác giả]

Tính toán giao điểm giữa các tập hợp này có nghĩa là chúng ta sẽ nhận được một tập hợp mới với một phần tử duy nhất - Python. Tại sao?

Hình 2 - Đặt giao lộ đang hoạt động [hình ảnh của tác giả]

Giao điểm đã đặt trong Python thường được biểu diễn bằng sơ đồ Venn. Đây là những gì nó trông giống như

Hình 3 - Đặt giao lộ dưới dạng sơ đồ Venn [ảnh của tác giả]

Chỉ có Python là chung cho cả hai tập hợp, vì vậy tôi đã đánh dấu khu vực giao nhau bằng màu xanh lam

Phương thức giao nhau làm gì trong Python và làm thế nào để bạn tìm thấy giao điểm giữa các tập hợp?

cú pháp

# Intersection of two sets
set1.intersection[set2]

# Intersection between multiple sets
set1.intersection[set2, set3]

Ở đâu

  • A ∩ B = {'Python'}
    0 - Có thể lặp lại để tìm giao lộ từ
  • A ∩ B = {'Python'}
    1,
    A ∩ B = {'Python'}
    2 - Các tập hợp khác dùng để tính giao điểm

Giá trị trả về

Hàm giao nhau trả về một tập hợp mới là giao điểm giữa tập hợp đầu tiên và tất cả các tập hợp khác được truyền dưới dạng đối số - nhưng chỉ khi [các] tập hợp hoặc [các] đối tượng có thể lặp lại được truyền cho hàm

Nếu không có đối số nào được chuyển vào hàm

A ∩ B = {'Python'}
3, một bản sao của tập hợp sẽ được trả về

Ví dụ về hàm giao nhau trong Python

Chúng tôi sẽ khai báo hai bộ, giống như trên Hình 1

  • A ∩ B = {'Python'}
    4. Chứa Python, JavaScript và PHP
  • A ∩ B = {'Python'}
    5. Chứa Java, Python và Ruby

Chỉ Python có mặt trong cả hai tập hợp, do đó, việc tính toán giao điểm sẽ trả về một tập hợp mới với Python là phần tử duy nhất

A = {'Python', 'JavaScript', 'PHP'}
B = {'Java', 'Python', 'Ruby'}

print[f"A ∩ B = {A.intersection[B]}"]

đầu ra

A ∩ B = {'Python'}

Nếu bạn không chỉ định bất kỳ tham số nào cho hàm giao nhau, một bản sao của tập hợp sẽ được trả về

# Intersection of two sets
set1.intersection[set2]

# Intersection between multiple sets
set1.intersection[set2, set3]
0

đầu ra

# Intersection of two sets
set1.intersection[set2]

# Intersection between multiple sets
set1.intersection[set2, set3]
1

Bạn có thể xác minh nó đã được sao chép bằng cách in địa chỉ bộ nhớ

# Intersection of two sets
set1.intersection[set2]

# Intersection between multiple sets
set1.intersection[set2, set3]
2

đầu ra

# Intersection of two sets
set1.intersection[set2]

# Intersection between multiple sets
set1.intersection[set2, set3]
3

Bạn sẽ không thấy các giá trị giống hệt nhau và đó không phải là vấn đề. Điều quan trọng là chúng khác nhau, cho biết tập hợp đã được sao chép sang một địa chỉ bộ nhớ khác

Một câu hỏi thường gặp là làm thế nào để tìm giao điểm của hai danh sách, vì vậy hãy trả lời ngay bây giờ

Làm cách nào để tìm giao điểm của hai danh sách trong Python?

Danh sách là loại dữ liệu phổ biến nhất trong Python - nó được sử dụng ngay cả trong trường hợp tồn tại cấu trúc dữ liệu tốt hơn. Có nhiều cách để bạn tìm giao điểm của hai danh sách. Chúng tôi sẽ bao gồm hai

  1. A ∩ B = {'Python'}
    6 - Bằng cách sử dụng cách hiểu danh sách
  2. A ∩ B = {'Python'}
    7 - ​​Bằng cách chuyển đổi một danh sách thành một tập hợp
# Intersection of two sets
set1.intersection[set2]

# Intersection between multiple sets
set1.intersection[set2, set3]
6

đầu ra

# Intersection of two sets
set1.intersection[set2]

# Intersection between multiple sets
set1.intersection[set2, set3]
7

Python Đặt giao lộ bằng toán tử &

Bạn không cần phải gọi hàm

A ∩ B = {'Python'}
3 mỗi lần. Bạn có thể sử dụng toán tử
A ∩ B = {'Python'}
9 để thay thế

A ∩ B = {'Python'}
0

đầu ra

A ∩ B = {'Python'}

Mọi thứ khác vẫn giữ nguyên. Hãy nhớ rằng cả hai toán hạng phải thuộc loại được đặt để toán tử

A ∩ B = {'Python'}
9 hoạt động

Các lỗi thường gặp của giao lộ đặt Python

Bạn có thể gặp lỗi khi lần đầu tiên bắt đầu làm việc với tập hợp. Đây là những điều phổ biến, nhưng thường dễ gỡ lỗi

Lỗi thuộc tính. 'danh sách' không có giao lộ thuộc tính

Đây là lỗi phổ biến nhất và nó xảy ra khi bạn gọi hàm

A ∩ B = {'Python'}
3 với kiểu dữ liệu sai. Chỉ các bộ có chức năng này được tích hợp sẵn

Đây là một ví dụ - một ngoại lệ được đưa ra khi bạn sử dụng danh sách

A = {'Python', 'JavaScript', 'PHP'}
B = {'Java', 'Python', 'Ruby'}

print[f"A ∩ B = {A.intersection[B]}"]
1

đầu ra

Hình 4 - Lỗi thuộc tính trên giao điểm đã thiết lập [ảnh của tác giả]

Đảm bảo rằng cả hai đều thuộc loại đã đặt và bạn sẽ sẵn sàng sử dụng

LoạiLỗi. [các] loại toán hạng không được hỗ trợ cho &. 'bộ' và 'danh sách'

Lỗi này xảy ra khi bạn cố gắng sử dụng ký hiệu tốc ký [

A ∩ B = {'Python'}
9 ký hiệu] trên các loại dữ liệu không hợp lệ. Cả hai toán hạng phải thuộc loại được đặt để ký hiệu tốc ký hoạt động. Đây là một ví dụ

A = {'Python', 'JavaScript', 'PHP'}
B = {'Java', 'Python', 'Ruby'}

print[f"A ∩ B = {A.intersection[B]}"]
2

đầu ra

Hình 5 - Lỗi gõ vào giao lộ đã đặt [ảnh của tác giả]

Như bạn có thể thấy, A là một tập hợp và B là một danh sách, vì vậy dấu hiệu

A ∩ B = {'Python'}
9 không hoạt động

Câu hỏi thường gặp về giao lộ của bộ Python

Bây giờ chúng ta sẽ xem xét một số câu hỏi thường gặp [FAQ] liên quan đến hàm giao cắt tập hợp Python

Đặt giao lộ vs. Cập nhật giao lộ - Điểm khác biệt là gì?

Hàm

# Intersection of two sets
set1.intersection[set2]

# Intersection between multiple sets
set1.intersection[set2, set3]
04 loại bỏ các mục không tìm thấy trong cả hai bộ [hoặc nhiều bộ]. Hàm này khác với hàm
A ∩ B = {'Python'}
3, vì nó loại bỏ các phần tử không mong muốn khỏi tập hợp ban đầu và không trả về bất kỳ thứ gì

A = {'Python', 'JavaScript', 'PHP'}
B = {'Java', 'Python', 'Ruby'}

print[f"A ∩ B = {A.intersection[B]}"]
3

đầu ra

A = {'Python', 'JavaScript', 'PHP'}
B = {'Java', 'Python', 'Ruby'}

print[f"A ∩ B = {A.intersection[B]}"]
4

Điều gì trái ngược với giao điểm đặt Python?

Đối lập với giao điểm của tập hợp Python là sự khác biệt đối xứng - tất cả các phần tử chỉ xuất hiện trong tập hợp thứ nhất hoặc thứ hai, nhưng không xuất hiện trong cả hai

A = {'Python', 'JavaScript', 'PHP'}
B = {'Java', 'Python', 'Ruby'}

print[f"A ∩ B = {A.intersection[B]}"]
5

đầu ra

A = {'Python', 'JavaScript', 'PHP'}
B = {'Java', 'Python', 'Ruby'}

print[f"A ∩ B = {A.intersection[B]}"]
6

Bạn có thể tính chênh lệch đối xứng bằng toán tử

# Intersection of two sets
set1.intersection[set2]

# Intersection between multiple sets
set1.intersection[set2, set3]
06

A = {'Python', 'JavaScript', 'PHP'}
B = {'Java', 'Python', 'Ruby'}

print[f"A ∩ B = {A.intersection[B]}"]
7

đầu ra

A = {'Python', 'JavaScript', 'PHP'}
B = {'Java', 'Python', 'Ruby'}

print[f"A ∩ B = {A.intersection[B]}"]
6

Độ phức tạp về thời gian của tập hợp giao điểm trong Python là gì?

Độ phức tạp về thời gian của giao điểm tập hợp trong Python trên một tập hợp có n phần tử và một đối số tập hợp có m phần tử là O[min[n, m]] vì bạn cần kiểm tra tập hợp nhỏ hơn xem mỗi phần tử của nó có phải là thành viên của . Kiểm tra tư cách thành viên là O[1], theo finxter. com

Phần kết luận

Giao điểm tập hợp Python hoàn toàn đơn giản để hiểu. Chúng tôi đã xem qua trực giác và định nghĩa với các ví dụ trực quan và xây dựng theo cách của chúng tôi để hiểu cách sử dụng nâng cao hơn và các lỗi điển hình mà bạn sẽ gặp phải. Chúng tôi cũng đã trả lời một số câu hỏi thường gặp

Tôi hy vọng rằng bài viết này đã giúp bạn hiểu rõ hơn về hàm giao cắt tập hợp trong Python. Như mọi khi, nếu bạn có bất kỳ câu hỏi hoặc nhận xét nào, vui lòng hỏi trong phần bình luận bên dưới. Mã hóa vui vẻ

Điều ngược lại của giao lộ trong Python là gì?

symmetric_difference[] đối lập với phương thức Set giao[] của Python.

Điều ngược lại của giao điểm trong lý thuyết tập hợp là gì?

Sự khác biệt đối xứng là tập hợp các phần tử nằm trong một trong hai tập hợp, nhưng không nằm trong giao điểm.

Tôi có thể trừ các tập hợp trong Python không?

Trong Python, bạn có thể sử dụng phương thức tập hợp chênh lệch[] hoặc toán tử chênh lệch tập hợp [ - ] để tìm sự khác biệt giữa các tập hợp .

Điều gì xảy ra khi bạn trừ các tập hợp trong Python?

Bộ Python. Sự khác biệt[] . Hàm Difference[] trả về một tập hợp là hiệu giữa hai tập hợp .

Chủ Đề