在嵌套列表中查找列表的最大值

时间:2019-01-16 17:27:05

标签: python list nested max

a=[int(i) for i in input().split()]
b=[]
for i in range(a[0]):
    x=[int(i) for i in input().split()]
    b.append(x)
print(b)
c=[]    
for j in range(len(b)):
  c.append(max(b[i]))
print(b[0])
print(c)
2
1 3 45 6 8 
2 4 56 7 
[[1, 3, 45, 6, 8], [2, 4, 56, 7]]
[1, 3, 45, 6, 8]
[56, 56, 56]

我想将每个列表的所有最大元素放入b到c。 但是我一直想得到整个列表的最大元素 嵌套列表中每个列表的最大值为[45,56]

3 个答案:

答案 0 :(得分:2)

您有一个2D列表,并试图返回该2D列表中每个元素的最大值列表。遍历2D列表并获取每个元素的最大值:

res = [max(i) for i in nested_list]

此外,您还可以使用map

res = list(map(max, nested_list))

答案 1 :(得分:0)

您可以使用list comprehension来获取每个子列表l的最大值:

b = [[1, 3, 45, 6, 8], [2, 4, 56, 7]]
c = [max(l) for l in b]

print(c)

输出

[45, 56]

上面的列表理解与以下for循环等效

c = []
for l in b:
    c.append(max(l))

答案 2 :(得分:0)

您还可以将嵌套列表转换为Pandas Dataframe并使用max函数。 您不必担心循环。

In [350]: import pandas as pd

In [342]: l = [[1, 3, 45, 6, 8], [2, 4, 56, 7]]

In [343]: pd.DataFrame(l)
Out[343]: 
   0  1   2  3    4
0  1  3  45  6  8.0
1  2  4  56  7  NaN

In [347]: pd.DataFrame(l).max(axis=1).tolist()
Out[347]: [45.0, 56.0]