查找列表中每个嵌套列表的最小值和最大值

我试图在嵌套列表中找到每个列表的最小值和最大值,以及最小值或最大值发生时间的索引:


因此,例如:


l=[[5,6,7][6,10,9,6][2,3,1]]

变成:


maxl=[7,10,3]

indexl=[2,1,2]

我试过这个,它似乎让我得到了最大列表(还没有索引)但不是最小的 - 有谁知道如何最好地做到这一点?


maxHap=[]

for subL in happiness1:

    maxHap.append(max(subL))

print(maxHap)


minHap=[]

for subL in happiness1:

    minHap.append(min(subL))

print(minHap)

来自新手的感谢


湖上湖
浏览 269回答 3
3回答

繁星淼淼

其他选择:l=[[5,6,7],[6,10,9,6],[2,3,1]]maxs = [ max(s) for s in l ] #=> [7, 10, 3]max_idxs = [ s.index(max(s)) for s in l ] #=> [2, 1, 1]mins = [ min(s) for s in l ] #=> [5, 6, 1]mins_idxs = [ s.index(min(s)) for s in l ] #=> [0, 0, 2]或者您可以将结果存储到一个 dict 数组中,一个班轮:mapp = map(lambda x: {'max': max(x), 'max_idxs': x.index(max(x)), 'min': min(x), 'min_idxs': x.index(min(x)) }, l)for k in mapp:  print(k)#=> {'max': 7, 'max_idxs': 2, 'min': 5, 'min_idxs': 0}#=> {'max': 10, 'max_idxs': 1, 'min': 6, 'min_idxs': 0}#=> {'max': 3, 'max_idxs': 1, 'min': 1, 'min_idxs': 2}

吃鸡游戏

您可以使用以下单行:l=[[5,6,7],[6,10,9,6],[2,3,1]]maxL, index = zip(*[(max(subList), subList.index(max(subList))) for subList in l])print(maxL) # will output (7, 10, 3)print(index) # will output (2, 1, 1)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python