📜  Python|在嵌套列表中查找最大长度子列表

📅  最后修改于: 2022-05-13 01:55:33.723000             🧑  作者: Mango

Python|在嵌套列表中查找最大长度子列表

给定一个列表列表,编写一个Python程序来找到最大长度的列表。输出应采用(list, list_length)形式。

例子:

Input : [['A'], ['A', 'B'], ['A', 'B', 'C']]
Output : (['A', 'B', 'C'], 3)

Input : [[1, 2, 3, 9, 4], [5], [3, 8], [2]]
Output : ([1, 2, 3, 9, 4], 5)


让我们讨论解决这个问题的不同方法。

方法 #1:使用 for 循环(天真)
这是一种蛮力方法,我们遍历每个列表项(列表)并找到最大长度的列表。同样,我们使用 for 循环来查找每个列表的长度并输出最大长度。

# Python3 program to Find maximum 
# length list in a nested list
  
def FindMaxLength(lst):
    maxList = max((x) for x in lst)
    maxLength = max(len(x) for x in lst )
  
    return maxList, maxLength
      
# Driver Code
lst = [['A'], ['A', 'B'], ['A', 'B', 'C']]
print(FindMaxLength(lst))
输出:
(['A', 'B', 'C'], 3)


方法#2:使用map
在这种方法中,我们使用Python map函数遍历内部列表以创建长度列表,然后使用 max函数获得最大值。

# Python3 program to Find maximum 
# length list in a nested list
  
def FindMaxLength(lst):
    maxList = max(lst, key = len)
    maxLength = max(map(len, lst))
      
    return maxList, maxLength
  
# Driver Code
lst = [['A'], ['A', 'B'], ['A', 'B', 'C'], ]
print(FindMaxLength(lst))
输出:
(['A', 'B', 'C'], 3)


方法 #3:使用lambda运算符
Python中查找最长列表的另一种方法是 lambda运算符。它用于在Python中创建小型、一次性和匿名函数对象。在这里,我们将变量i作为len(i)表达式中的参数传递并找到最大长度。

# Python3 program to Find maximum 
# length list in a nested list
  
def FindMaxLength(lst):
    maxList = max(lst, key = lambda i: len(i))
    maxLength = len(maxList)
      
    return maxList, maxLength
# Driver Code
lst = [['A'], ['A', 'B'], ['A', 'B', 'C']]
print(FindMaxLength(lst))
输出:
(['A', 'B', 'C'], 3)