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ệcHô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
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?
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ư
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
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ểmA ∩ B = {'Python'}
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
4. Chứa Python, JavaScript và PHPA ∩ B = {'Python'}
5. Chứa Java, Python và RubyA ∩ B = {'Python'}
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]
1Bạ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]
3Bạ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
6 - Bằng cách sử dụng cách hiểu danh sáchA ∩ B = {'Python'}
7 - Bằng cách chuyển đổi một danh sách thành một tập hợpA ∩ B = {'Python'}
# 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]
7Python Đặ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 độngCá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
Đả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
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 độngCâ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]}"]
6Bạ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]
06A = {'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ẻ