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

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

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

湖上湖 2021-08-14 17:51:34
我试图在嵌套列表中找到每个列表的最小值和最大值,以及最小值或最大值发生时间的索引:因此,例如: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)来自新手的感谢
查看完整描述

3 回答

?
繁星淼淼

TA贡献1775条经验 获得超11个赞

其他选择:


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}


查看完整回答
反对 回复 2021-08-14
?
吃鸡游戏

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

您可以使用以下单行:


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)


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

添加回答

举报

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