我有一个嵌套列表,如下所示:

x = [[1,  5, 3,  4],
     [5, 10, 7,  8],
     [9,  9, 2, 12]]

我需要找到嵌套列表 转置 的最小值和最大值,以便 min 的结果是:
1, 5, 2, 4  # 1 is the min of first column (1, 5, 9) a.s.o

最大值应该是:
9, 10, 7, 12

我尝试先将其转换为 dataframe ,然后在不同的轴上执行 max 和 min ,但所有结果都没有出现我想要的结果。

最佳答案

您可以使用内置的 map min max 函数和 zip(*...) 转置模式执行以下操作:

min_x = list(map(min, zip(*x)))
max_x = list(map(max, zip(*x)))

或者正如 Chris_Rands 所指出的,这种缩短的形式也适用:
min_x = list(map(min, *x))
max_x = list(map(max, *x))

或者使用理解:
min_x = [min(col) for col in zip(*x)]
max_x = [max(col) for col in zip(*x)]

如果你拼命想做到这一点:
min_x, max_x = zip(*[(min(col), max(col)) for col in zip(*x)])

关于python - 通过嵌套列表中元素的索引查找嵌套列表的最小值和最大值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47654162/

10-09 08:00