Giao điểm của 3 danh sách Python

Ví dụ tìm các phần tử phổ biến trong ba danh sách, nhưng bạn có thể sử dụng phương pháp này với bao nhiêu danh sách nếu cần

Chúng tôi đã sử dụng lớp set() để chuyển đổi danh sách đầu tiên thành một set

Lớp nhận một đối số tùy chọn có thể lặp lại và trả về một đối tượng set mới với các phần tử được lấy từ đối tượng có thể lặp lại

Đặt các đối tượng lưu trữ một bộ sưu tập các phần tử duy nhất không có thứ tự và triển khai phương thức intersection()

Phương thức trả về một set mới với các phần tử chung cho các đối tượng được cung cấp

Bạn có thể sử dụng hàm len() nếu cần lấy số phần tử chung giữa các danh sách

Ngoài ra, bạn có thể sử dụng cách hiểu danh sách

Tìm các giá trị chung trong nhiều danh sách bằng cách sử dụng khả năng hiểu danh sách

Để tìm các phần tử phổ biến trong nhiều danh sách

  1. Sử dụng khả năng hiểu danh sách để lặp lại danh sách đầu tiên
  2. Kiểm tra xem mỗi phần tử có mặt trong các danh sách khác không và trả về kết quả
  3. Danh sách mới sẽ chỉ chứa các phần tử chung giữa các danh sách

Chúng tôi đã sử dụng cách hiểu danh sách để lặp lại danh sách đầu tiên

Khả năng hiểu danh sách được sử dụng để thực hiện một số thao tác cho mọi phần tử hoặc chọn một tập hợp con các phần tử đáp ứng một điều kiện

Trên mỗi lần lặp, chúng tôi kiểm tra xem mục hiện tại có trong hai danh sách khác hay không và trả về kết quả

Danh sách mới chỉ chứa các phần tử có trong cả ba danh sách

Các bài kiểm tra tư cách thành viên. Ví dụ: intersection()0 ước tính thành intersection()1 nếu intersection()2 là thành viên của intersection()3, nếu không, nó ước tính thành intersection()4

Ngoài ra, bạn có thể sử dụng vòng lặp intersection()5 đơn giản

Tìm các giá trị chung trong nhiều danh sách bằng vòng lặp for

Để tìm các phần tử phổ biến trong nhiều danh sách

  1. Sử dụng vòng lặp intersection()5 để lặp lại danh sách đầu tiên
  2. Kiểm tra xem mỗi mục có nằm trong các danh sách khác không
  3. Nối các mục phù hợp vào danh sách mới

Chúng tôi đã sử dụng vòng lặp intersection()5 để lặp lại danh sách đầu tiên

Trên mỗi lần lặp lại, chúng tôi sử dụng phương pháp intersection8 để cập nhật tập hợp với giao điểm của chính nó và danh sách

Để cắt nhiều tập hợp, được lưu trữ trong danh sách l, hãy sử dụng lớp lót một lớp của Python l.pop().intersection(*l) để lấy tập hợp đầu tiên từ danh sách, gọi phương thức intersection() trên đó và chuyển các tập hợp còn lại làm đối số bằng cách giải nén chúng khỏi danh sách

Một tập hợp là một tập hợp duy nhất các phần tử không có thứ tự. Phép giao nhau tạo ra một tập hợp mới bao gồm các phần tử tồn tại trong tất cả các tập hợp

Giao điểm của 3 danh sách Python

Vì vậy, chúng ta hãy đi sâu vào công thức bài toán chính thức, phải không?

Vấn đề. Đưa ra một danh sách hoặc một tập hợp các bộ. Làm cách nào để nối các tập hợp đó bằng phép toán giao nhau?

Ví dụ. Bạn có một danh sách các tập hợp [{1, 2, 3}, {1, 4}, {2, 3, 5}] và bạn muốn tính toán giao điểm của {1}

Giải pháp. Để cắt một danh sách các tập hợp, hãy sử dụng chiến lược sau

  • Lấy phần tử đầu tiên từ danh sách làm điểm bắt đầu. Điều này giả sử danh sách có ít nhất một phần tử
  • Gọi phương thức intersection() trên đối tượng được đặt đầu tiên
  • Chuyển tất cả các tập hợp dưới dạng đối số vào phương thức intersection() bằng cách giải nén danh sách bằng toán tử dấu hoa thị *list
  • Kết quả của phương thức intersection() là một tập hợp mới chứa tất cả các phần tử có trong tất cả các tập hợp

Mã số. Đây là mã một lớp giao cắt một tập hợp các tập hợp

# Create the list of sets
lst = [{1, 2, 3}, {1, 4}, {1, 2, 3}]

# One-Liner to intersect a list of sets
print(lst[0].intersection(*lst))

Đầu ra của mã này là giao của ba bộ

{1}
1,
{1}
2 và
{1}
3. Chỉ một phần tử xuất hiện trong cả ba tập hợp

{1}

Nếu bạn yêu thích Python one-liners, hãy xem cuốn sách mới của tôi “Python One-Liners” (Amazon Link) dạy bạn hiểu thấu đáo về tất cả các dòng mã Python

Hãy tự mình thử. Đây là mã trong trình vỏ mã tương tác chạy mã đó trong trình duyệt của bạn

Bài tập. Thay đổi mã để tính toán sự kết hợp của các tập hợp trong danh sách

video liên quan. Một vấn đề tương tự là thực hiện phép toán hợp trên một danh sách các tập hợp. Trong video sau, bạn có thể xem tôi giải thích cách hợp nhất nhiều bộ trong Python

Làm cách nào để kết hợp nhiều bộ trong Python?

Giao điểm của 3 danh sách Python

Xem video này trên YouTube

Đi đâu từ đây?

Đủ lý thuyết. Hãy thực hành một số

Các lập trình viên được trả sáu con số trở lên vì họ có thể giải quyết vấn đề hiệu quả hơn bằng cách sử dụng trí thông minh máy móc và tự động hóa

Để trở nên thành công hơn trong việc viết mã, hãy giải quyết nhiều vấn đề thực tế hơn cho người thực. Đó là cách bạn trau dồi những kỹ năng bạn thực sự cần trong thực tế. Rốt cuộc, việc sử dụng lý thuyết học tập mà không ai cần là gì?

Bạn xây dựng các kỹ năng mã hóa có giá trị cao bằng cách làm việc trên các dự án mã hóa thực tế

Bạn có muốn ngừng học với các dự án đồ chơi và tập trung vào các dự án mã thực tế giúp bạn kiếm tiền và giải quyết các vấn đề thực sự cho mọi người không?

🚀 Nếu câu trả lời của bạn là CÓ. , cân nhắc trở thành nhà phát triển Python tự do. Đó là cách tốt nhất để tiếp cận nhiệm vụ cải thiện kỹ năng Python của bạn—ngay cả khi bạn là người mới hoàn toàn

Nếu bạn chỉ muốn tìm hiểu về cơ hội làm việc tự do, vui lòng xem hội thảo trên web miễn phí của tôi “Cách xây dựng kỹ năng Python có thu nhập cao của bạn” và tìm hiểu cách tôi phát triển công việc viết mã của mình trực tuyến cũng như cách bạn có thể làm được—từ sự thoải mái của bạn

Tham gia hội thảo trên web miễn phí ngay bây giờ

hài hước mọt sách

Giao điểm của 3 danh sách Python
Ồ vâng, tôi thậm chí còn không biết họ đã đổi tên nó thành Tháp Willis vào năm 2009, bởi vì tôi biết một chút về các tòa nhà chọc trời. — xkcd (nguồn)

Giao điểm của 3 danh sách Python

Chris

Trong khi làm việc với tư cách là một nhà nghiên cứu trong các hệ thống phân tán, Dr. Christian Mayer tìm thấy tình yêu của mình với việc dạy sinh viên khoa học máy tính

Để giúp sinh viên đạt được mức độ thành công Python cao hơn, anh ấy đã thành lập trang web giáo dục lập trình Finxter. com. Ông là tác giả của cuốn sách lập trình nổi tiếng Python One-Liners (NoStarch 2020), đồng tác giả của loạt sách tự xuất bản Coffee Break Python, người đam mê khoa học máy tính, cộng tác viên tự do và chủ sở hữu của một trong 10 blog Python lớn nhất thế giới

Niềm đam mê của anh ấy là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh ấy là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ nâng cao kỹ năng của mình. Bạn có thể tham gia học viện email miễn phí của anh ấy tại đây

Bạn có thể sử dụng giao lộ cho các danh sách trong Python không?

Giao điểm của hai danh sách có nghĩa là chúng ta cần lấy tất cả các phần tử chung cho cả hai danh sách ban đầu và lưu trữ chúng vào một danh sách khác. Bây giờ có nhiều cách khác nhau trong Python, qua đó chúng ta có thể thực hiện Giao điểm của danh sách .

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

Giải pháp. Để cắt một danh sách các tập hợp, hãy sử dụng chiến lược sau. .
Lấy phần tử đầu tiên từ danh sách làm điểm bắt đầu. .
Gọi phương thức giao nhau () trên đối tượng được đặt đầu tiên
Chuyển tất cả các tập hợp làm đối số vào phương thức giao nhau() bằng cách giải nén danh sách bằng toán tử *list

Bạn có thể sử dụng giao điểm của danh sách không?

Phương thức thiết lập giao nhau() có thể được sử dụng với bất kỳ khả năng lặp nào, như chuỗi, danh sách và từ điển .