为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PIPIONE 2021-10-12 16:41:59
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)21 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 回答

?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

您还可以将嵌套列表转换为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]


查看完整回答
反对 回复 2021-10-12
?
元芳怎么了

TA贡献1798条经验 获得超7个赞

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


查看完整回答
反对 回复 2021-10-12
?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

您有一个 2D 列表,并试图返回该 2D 列表中每个元素的最大值列表。迭代二维列表并为每个元素取最大值:

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

此外,您还可以使用map

res = list(map(max, nested_list))


查看完整回答
反对 回复 2021-10-12
  • 3 回答
  • 0 关注
  • 391 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信