给定一个列表字典,是否有一种 pythonic 智能方法来比较每个列表的第 i 个元素并提取最大值?

jot*_*wie 2 python

我有一本像下面这样的字典:

{
'k0': [10, 35, 20],
'k1': [2, 0, 40],
'k2': [21, 400, 5],
}
Run Code Online (Sandbox Code Playgroud)

我想获得一个列表,列表的每个第 i 个位置都有最大值。例如,在这种情况下:

max_val_list = [21, 400, 40]
Run Code Online (Sandbox Code Playgroud)

目前的做法(对我来说似乎太混乱了): 1. 提取列表:

    k0_list = dicc_name[k0]
    k1_list = dicc_name[k1]
    k2_list = dicc_name[k2]
Run Code Online (Sandbox Code Playgroud)
  1. 找到最大值:
{
'k0': [10, 35, 20],
'k1': [2, 0, 40],
'k2': [21, 400, 5],
}
Run Code Online (Sandbox Code Playgroud)

我相信一定有一种方法可以直接从字典中以优雅的方式做到这一点,我想学习。

Thi*_*lle 9

您可以zip获取 dict 的值,并获取每列的最大值:

data = {
'k0': [100, 35, 20],
'k1': [2, 0, 40],
'k2': [21, 400, 5],
}

[max(col) for col in zip(*data.values())]
# [100, 400, 40]
Run Code Online (Sandbox Code Playgroud)