Liệt kê Giao điểm bằng Python

List Intersection Python



Nhiều biến đối tượng tồn tại trong python để lưu trữ nhiều loại dữ liệu khác nhau. Các danh sách là một trong những biến này và có thể lưu trữ các loại dữ liệu khác nhau cho các nhu cầu khác nhau. Đôi khi, chúng ta cần tìm các mục dữ liệu phổ biến, không phổ biến hoặc cả phổ biến và không phổ biến từ nhiều danh sách cho mục đích lập trình. Python chứa một số hàm và toán tử tích hợp có thể thực hiện các loại tác vụ này cho các bộ Python. Việc tìm kiếm dữ liệu chung từ nhiều danh sách được gọi là giao điểm danh sách, nhưng không có toán tử hoặc hàm tích hợp sẵn cho danh sách như tập hợp để tìm các mục dữ liệu chung từ nhiều danh sách. Hướng dẫn này sẽ chỉ cho bạn cách giao nhau giữa các danh sách trong Python.

Ngã tư

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







List1= [4, 7, 2. 3, 9, 6, mười một]
List2= [6, 5, 1, hai mươi, 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ó lẽ có 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:







Ví dụ 1: Giao nhau danh sách thông qua phương thức set ()

Ví dụ sau đây cho thấy cách bạn có thể giao nhau hai danh sách bằng cách sử dụng bộ() phương pháp và & nhà điều hành. 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 list1 và list 2 thành tập hợp thông qua tập hợp () phương pháp và áp dụng giao điểm bằng cách sử dụng & nhà điều hành. Tiếp theo, các giá trị của ba danh sách được in ra.

#! / usr / bin / env python3
# Xác định danh sách1
list1= [22, số 8, Bốn năm, mười một, 3. 4, 9, hai mươi, 7]
# Xác định danh sách2
list2= [12, 9, hai mươi, 78, 53, số 8, 2, 30,31]
# Tạo list3 bằng cách giao giữa list1 và list2
list3= danh sách(bộ(list1)&bộ(list2))
# In danh sách1
in('Các giá trị của list1: ',list1)
# In danh sách2
in('Các giá trị của list2: ',list2)
# In danh sách3
in('Các giá trị của list3 sau khi giao giữa list1 và list2: ',list3)

Đầu ra



Kết quả 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.

Ví dụ 2: Danh sách giao nhau thông qua phương thức giao ()

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 nhau 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à ngã tư() , để tìm ra các giá trị chung giữa các tập hợp. Một chức năng tùy chỉnh, được đặt tên là Giao lộ () , được định nghĩa 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 tập hợp 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, list1list2 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ố chung giữa list1list2 .

#! / usr / bin / env python3

# Định nghĩa hàm trả về giao điểm của hai danh sách
phản đốigiao nhau(list1,list2):
trở lại bộ(list1).ngã tư(list2)

# Xác định danh sách1
list1= ['Xin chào','7','số 8','10','2']
# Xác định danh sách2
list2= ['số 8','3. 4','Xin chào','2','hai mươi mốt','1',10]
'' 'Gọi hàm tùy chỉnh để lưu trữ
kết quả giao nhau của list1 và list2
vào list3 '' '

list3=giao nhau(list1,list2)
# In danh sách1
in('Các giá trị của list1: ',list1)
# In danh sách2
in('Các giá trị của list2: ',list2)
# In danh sách3
in('Các giá trị của list3 sau khi giao giữa list1 và list2: ',list3)

Đầu ra

Kết quả sau sẽ xuất hiện sau khi chạy tập lệnh. Ở đây, các giá trị chung giữa hai danh sách là ‘2’, ‘8’ và ‘Hello’.

Ví dụ 3: Giao nhau danh sách thông qua phương pháp vòng lặp

Hai ví dụ trước hiển thị giao điểm danh sách bằng cách sử dụng các hàm tích hợp. Ví dụ sau cho thấy danh sách giao nhau 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. Các vòng lặp được sử dụng ở đây để tìm ra các giá trị văn bản chung giữa list1list2, 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','Gần hơn','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ịgiá trịtronglist1nếu nhưgiá trịtronglist2]

# In danh sách1
in('Các giá trị của list1: ',list1)
# In danh sách2
in('Các giá trị của list2: ',list2)
# In danh sách3
in('Các giá trị của list3 sau khi giao giữa list1 và list2: ',list3)

Đầu ra

Kết quả sau sẽ xuất hiện sau khi chạy tập lệnh. Ở đây, các giá trị văn bản chung của hai danh sách là 'Abir''Meena.'

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

Ví dụ sau đây cho thấy sự giao nhau giữa một danh sách đơn giản và một danh sách lồng nhau. Các lọc() phương pháp và lambda hàm được sử dụng trong script để tiến hành giao giữa list1 và list2. 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 list1list2 .

#! / usr / bin / env python3

# Xác định một danh sách đơn giản
list1= [22, số 8, Bốn năm, mười một, 3. 4, 9, hai mươi, 7]
# Xác định danh sách lồng nhau
list2= [[12, 9, hai mươi], [78, mười một, 53, số 8], [2, 30, 31, Bốn năm]]
# Tạo list3 bằng cách giao giữa list1 và list2 bằng filter ()
list3= [danh sách(lọc(lambdan: ntronglist1,mảnh mai)) mảnh maitronglist2]

# In danh sách1
in('Các giá trị của list1: ',list1)
# In danh sách2
in('Các giá trị của list2: ',list2)
# In danh sách3
in('Các giá trị của list3 sau khi giao giữa list1 và list2: ',list3)

Đầu ra

Kết quả 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ì vậy, kết quả cho thấy sự giao nhau giữa ba danh sách con này của list2 với list1.

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ó các hàm tích hợp được trình bày 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 hiển thị trong hướng dẫn này.