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

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]


PIPIONE
浏览 392回答 3
3回答

慕桂英4014372

您还可以将嵌套列表转换为Pandas Dataframe并使用max函数。 这样你就不必担心循环了。In [350]: import pandas as pdIn [342]: l = [[1, 3, 45, 6, 8], [2, 4, 56, 7]]In [343]: pd.DataFrame(l)Out[343]:    0  1   2  3    40  1  3  45  6  8.01  2  4  56  7  NaNIn [347]: pd.DataFrame(l).max(axis=1).tolist()Out[347]: [45.0, 56.0]

元芳怎么了

您可以使用一个列表理解,它为每个子列表取最大值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))

牧羊人nacy

您有一个 2D 列表,并试图返回该 2D 列表中每个元素的最大值列表。迭代二维列表并为每个元素取最大值:res = [max(i) for i in nested_list]此外,您还可以使用map:res = list(map(max, nested_list))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python