从不同列表中使用相同索引获取最大值的Pythonic方法

从不同列表中使用相同索引获取最大值的Pythonic方法,python,python-3.x,Python,Python 3.x,我有一份清单,如下所示: { 'FR-8_20190502_MD_Case1': [11595, 8250, 13023, 7223], 'FR-8_20190505_MD_Case1': [11595, 8250, 13023, 7418], 'FR-8_20190507_MD_Case1': [11595, 8250, 13023, 7223], 'FR-8_20190509_MD_Case1': [11595, 8250, 13023, 7384],

我有一份清单,如下所示:

{
    'FR-8_20190502_MD_Case1': [11595, 8250, 13023, 7223],
    'FR-8_20190505_MD_Case1': [11595, 8250, 13023, 7418],
    'FR-8_20190507_MD_Case1': [11595, 8250, 13023, 7223],
    'FR-8_20190509_MD_Case1': [11595, 8250, 13023, 7384],
    'FR-8_20190508_MD_Case1': [12948, 8250, 13023, 7223],
    'FR-8_20190506_MD_Case1': [12056, 8250, 13023, 7223]
}
我想列出这些列表中每个索引的最大值,例如:

[12948, 8250, 13023, 7418]
到目前为止,我已经做到了这一点,但我确信它可以改进:(
ima_size
是我的清单清单)


有没有一种更具python风格的方法来实现这一点?

如果您可以使用numpy并将列表作为numpy数组,如

array = [[11595, 8250, 13023, 7223],
[11595, 8250, 13023, 7418],
....
[12056, 8250, 13023, 7223]]
然后你可以用
numpy.amax(array,axis=0)
如果可以使用numpy并将列表作为numpy数组,则它将在每列(沿轴0)返回一个max元素数组

,如

array = [[11595, 8250, 13023, 7223],
[11595, 8250, 13023, 7418],
....
[12056, 8250, 13023, 7223]]
然后你可以用
numpy.amax(array,axis=0)
它将在每列(沿轴0)返回一个max元素数组

使用
zip()
转换值和
max()
查找最大值:

d = {
    'FR-8_20190502_MD_Case1': [11595, 8250, 13023, 7223],
    'FR-8_20190505_MD_Case1': [11595, 8250, 13023, 7418],
    'FR-8_20190507_MD_Case1': [11595, 8250, 13023, 7223],
    'FR-8_20190509_MD_Case1': [11595, 8250, 13023, 7384],
    'FR-8_20190508_MD_Case1': [12948, 8250, 13023, 7223],
    'FR-8_20190506_MD_Case1': [12056, 8250, 13023, 7223]
}

print([max(v) for v in zip(*d.values())])
印刷品:

[12948, 8250, 13023, 7418]
使用
zip()
转换值和
max()
查找最大值:

d = {
    'FR-8_20190502_MD_Case1': [11595, 8250, 13023, 7223],
    'FR-8_20190505_MD_Case1': [11595, 8250, 13023, 7418],
    'FR-8_20190507_MD_Case1': [11595, 8250, 13023, 7223],
    'FR-8_20190509_MD_Case1': [11595, 8250, 13023, 7384],
    'FR-8_20190508_MD_Case1': [12948, 8250, 13023, 7223],
    'FR-8_20190506_MD_Case1': [12056, 8250, 13023, 7223]
}

print([max(v) for v in zip(*d.values())])
印刷品:

[12948, 8250, 13023, 7418]

您似乎根本不关心键,因此
[max(vals)for vals in ima_size.values()]
?它没有给出所需的输出,但是
[130231302313023130231302313023]
哦,我误解了您的意思;如Andrej的回答所示,您需要为转置添加一个zip。您似乎根本不关心键,因此
[max(vals)for vals in ima_size.values()]
?它没有给出所需的输出,但是
[13023130231302313023130231302313023]
哦,我误解了您的意思;您需要添加一个zip到转置,如Andrej的回答所示。
numpy
似乎是一个很好的方法,但我更喜欢Andrej Kesely的解决方案,+1虽然这是python的方式,这是python框架工作方式。英雄联盟学习愉快!我同意他的答案应该是公认的答案。
numpy
似乎是一个不错的方法,但我更喜欢Andrej Kesely的解决方案,+1思维这是python方式,这是python框架工作方式。英雄联盟学习愉快!我同意他的答案应该是公认的答案。这正是我想要的!我没有想到使用
zip()
这正是我想要的!我没有想过使用
zip()