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)