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

Trước khi bắt đầu hướng dẫn này, khái niệm giao lộ sẽ được giải thích. Dưới đây, hai được đưa ra làm ví dụ

Danh sách1 = [4, 7, 23, 9, 6, 11]
List2 = [6, 5, 1, 20, 9, 7, 4, 3]

Sau khi áp dụng giao điểm, nếu kết quả được lưu trữ trong một danh sách khác, có thể được đặt tên là List3, thì nó sẽ chứa dữ liệu sau

Danh sách3 = [4, 6, 7, 9]

Biểu diễn đồ họa của List3 được hiển thị bên dưới

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

ví dụ 1. Danh sách giao nhau thông qua phương thức set()

Ví dụ sau đây cho thấy cách bạn có thể cắt hai danh sách bằng cách sử dụng phương thức set() và toán tử &. Hai danh sách có tên list1 và list2 được khai báo ở đây. Cả hai danh sách này đều chứa các giá trị số. Danh sách thứ ba được tạo bằng cách chuyển đổi danh sách 1 và danh sách 2 thành tập hợp thông qua phương thức set() và áp dụng giao điểm bằng cách sử dụng toán tử &. Tiếp theo, các giá trị của ba danh sách được in

#. /usr/bin/env python3
# Xác định danh sách1
list1 = [22, 8, 45, 11, 34, 9, 20, 7]
# Xác định danh sách2
list2 = [12, 9, 20, 78, 53, 8, 2, 30,31]
# Tạo list3 bằng cách giao list1 và list2
list3 = danh sách(đặt(list1) & set(list2))
# In danh sách1
print("Các giá trị của list1. \n ", danh sách1 )
# In danh sách2
print("Các giá trị của list2. \n ", list2 )
# In danh sách3
print("Các giá trị của list3 sau khi giao list1 và list2. \n ", danh sách3 )

đầu ra

Đầu ra sau sẽ xuất hiện sau khi chạy tập lệnh. Ba giá trị chung cho cả hai danh sách. Các giá trị này là 8, 9 và 20 và được hiển thị trong nội dung của danh sách thứ ba

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

ví dụ 2. Danh sách giao nhau qua phương thức giao lộ ()

Không có phương thức tích hợp, trực tiếp nào cho đối tượng danh sách để tìm ra các giá trị giao điểm giữa hai danh sách. Tuy nhiên, tập hợp có một phương thức tích hợp, có tên là giao điểm (), để tìm ra các giá trị chung giữa các tập hợp. Hàm tùy chỉnh, có tên là danh sách giao nhau(), được xác định trong tập lệnh sau để tìm ra các giá trị chung giữa hai danh sách. Một hạn chế của bộ này là nó chỉ có thể chứa dữ liệu số. Một biến danh sách có thể chứa nhiều loại chuỗi dữ liệu khác nhau, bao gồm số, boolean, v.v. Trong tập lệnh, list1 và list2 chứa tất cả dữ liệu chuỗi bao gồm và văn bản. Tập lệnh sẽ in tất cả các giá trị chuỗi và số phổ biến giữa list1 và list2

#. /usr/bin/env python3
 
# Định nghĩa hàm trả về giao điểm của hai danh sách
def danh sách giao nhau ( list1 ,list2):
  return set( list1 ).giao lộ( danh sách2 )
 
# Xác định danh sách1
list1 = ['Xin chào','7','8','10','2']
# Xác định danh sách2
list2 = ['8','34','Hello','2','21','1',10]
''' Gọi chức năng tùy chỉnh để lưu trữ
kết quả giao nhau của list1 và list2
vào danh sách3'''

list3 = danh sách giao nhau ( list1 , list2)
# In danh sách1
print("Các giá trị của list1. \n ", danh sách1 )
# In danh sách2
print("Các giá trị của list2. \n ", list2 )
# In danh sách3
print("Các giá trị của list3 sau khi giao list1 và list2. \n ", danh sách3 )

đầu ra

Đầu ra sau sẽ xuất hiện sau khi chạy tập lệnh. Ở đây, các giá trị phổ biến giữa hai danh sách là '2', '8' và 'Xin chào'. ’

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

ví dụ 3. Danh sách giao nhau thông qua Phương pháp vòng lặp

Hai ví dụ trước hiển thị giao điểm của danh sách bằng cách sử dụng các hàm tích hợp. Ví dụ sau hiển thị giao lộ danh sách mà không có bất kỳ chức năng tích hợp nào. Điều này có thể đạt được bằng cách sử dụng vòng lặp. Hai danh sách dữ liệu văn bản được khai báo trong tập lệnh. Vòng lặp for được sử dụng ở đây để tìm ra các giá trị văn bản phổ biến giữa list1 và list2 và được lưu trữ trong biến list3. Tiếp theo, giá trị của ba biến danh sách này được in ra

#. /usr/bin/env python3
 
# Xác định danh sách1
list1 = ['Farhan','Abir','Akash','Meena','Mazher']
# Xác định danh sách2
list2 = ['Meena','Moyna','Nobel','Naher','Abir','Farheen']
# Tìm giao điểm bằng vòng lặp for và lưu kết quả vào list3
list3 = [ giá trị cho value in list1 if value in list2]
 
# In danh sách1
print("Các giá trị của list1. \n ", danh sách1 )
# In danh sách2
print("Các giá trị của list2. \n ", list2 )
# In danh sách3
print("Các giá trị của list3 sau khi giao list1 và list2. \n ", danh sách3 )

đầu ra

Đầu ra sau sẽ xuất hiện sau khi chạy tập lệnh. Ở đây, các giá trị văn bản phổ biến của hai danh sách là 'Abir' và 'Meena. ’

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

Ví dụ 4. Giao nhau giữa các danh sách đơn giản và danh sách lồng nhau thông qua phương thức filter()

Ví dụ sau đây cho thấy giao điểm giữa danh sách đơn giản và danh sách lồng nhau. Phương thức filter() và hàm lambda được sử dụng trong tập lệnh để thực hiện giao điểm giữa danh sách 1 và danh sách 2. Khi một danh sách chứa một hoặc nhiều danh sách dưới dạng các mục danh sách, thì danh sách đó được gọi là danh sách lồng nhau. Ở đây, list1 là một danh sách đơn giản và list2 là một danh sách lồng nhau, trong khi list3 chứa các giá trị giao nhau của list1 và list2

#. /usr/bin/env python3
 
# Định nghĩa một danh sách đơn giản
list1 = [22, 8, 45, 11, 34, 9, 20, 7]
# Định nghĩa một danh sách lồng nhau
list2 = [[12, 9, 20], [78, 11, 53, 8], [2, 30, 31, 45]]
# Tạo list3 bằng cách cắt list1 và list2 bằng filter()
list3 = [list(filter(lambda n: n trong danh sách1 , danh sách )) for slist in list2]
 
# In danh sách1
print("Các giá trị của list1. \n ", danh sách1 )
# In danh sách2
print("Các giá trị của list2. \n ", list2 )
# In danh sách3
print("Các giá trị của list3 sau khi giao list1 và list2. \n ", danh sách3 )

đầu ra

Đầu ra sau sẽ xuất hiện sau khi chạy tập lệnh. Biến list2 chứa ba danh sách khác dưới dạng các mục danh sách. Vậy kết quả hiển thị phần giao nhau giữa 3 danh sách con này của list2 với list1

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

Phần kết luận

Giao điểm danh sách là một cách hữu ích để tìm các giá trị chung giữa các danh sách có chứa một số lượng lớn các mục danh sách. Các phương pháp để thực hiện giao điểm danh sách có và không có chức năng tích hợp được hiển thị trong hướng dẫn này. Sau khi đọc bài viết này, khái niệm về giao điểm danh sách sẽ rõ ràng và bạn sẽ có thể áp dụng giao điểm danh sách trong tập lệnh của mình bằng cách làm theo bất kỳ cách nào được chỉ ra trong hướng dẫn nà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