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]
答案 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]