Computer >> Máy Tính >  >> Lập trình >> Python

Tìm danh sách con có độ dài tối đa trong danh sách lồng nhau bằng Python

chúng tôi thường xử lý các danh sách lồng nhau khi thực hiện phân tích dữ liệu trong python. Trong bài viết này, chúng ta sẽ xem cách tìm ra danh sách dài nhất trong số các phần tử trong danh sách lồng nhau và sau đó in ra danh sách này cùng với độ dài của nó.

Sử dụng lambda và bản đồ

Chúng tôi khai báo một danh sách lồng nhau và đưa nó làm đầu vào cho hàm lambda cùng với độ dài của nó. Cuối cùng, chúng tôi áp dụng hàm max để lấy danh sách có độ dài tối đa cũng như độ dài của danh sách đó.

Ví dụ

def longest(lst):
   longestList = max(lst, key = lambda i: len(i))
   maxLength = max(map(len, listA))
   return longestList, maxLength
# Driver Code
listA = [[1,2], [2,45,6,7], [11,65,2]]
print("Longest List and its length:\n",longest(listA))

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

Longest List and its length:
([2, 45, 6, 7], 4)

Sử dụng len và max

Trong cách tiếp cận này, trước tiên chúng ta tìm danh sách con có độ dài tối đa và sau đó lặp qua các phần tử của danh sách để tìm ra danh sách con nào phù hợp với độ dài đó. Chúng tôi sử dụng hàm max và len để thực hiện phép tính này.

Ví dụ

def longest(lst):
   longestList = []
   maxLength = max(len(x) for x in listA)
   for i in listA:
      if len(i) == maxLength :
         longestList = i
   return longestList, maxLength
# Driver Code
listA = [[1,2], [2,45,6,7], [11,6,2]]
print("Longest List and its length:\n",longest(listA))

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

Longest List and its length:
([2, 45, 6, 7], 4)

Sử dụng bản đồ

Đây là cách tiếp cận tương tự như chương trình trên nhưng chúng tôi sử dụng chức năng bản đồ để tìm ra danh sách con có độ dài tối đa.

Ví dụ

def longest(lst):
   longestList = []
   maxLength = max(map(len,listA))
   for i in listA:
      if len(i) == maxLength :
         longestList = i
   return longestList, maxLength
# Driver Code
listA = [[1,2], [2,45,6,7], [11,6,2]]
print("Longest List and its length:\n",longest(listA))

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

Longest List and its length:
([2, 45, 6, 7], 4)