gpt4 book ai didi

python - 获取二维数组中每列的第二个最小值

转载 作者:行者123 更新时间:2023-12-04 11:14:38 24 4
gpt4 key购买 nike

如何从每列中获得第二个最小值?我有这个数组:

A = [[72 76 44 62 81 31]
[54 36 82 71 40 45]
[63 59 84 36 34 51]
[58 53 59 22 77 64]
[35 77 60 76 57 44]]

我希望有如下输出:
A = [54 53 59 36 40 44]

最佳答案

试试这个,只用一行:

[sorted(i)[1] for i in zip(*A)]

在行动:
In [12]: A = [[72, 76, 44, 62, 81, 31], 
...: [54 ,36 ,82 ,71 ,40, 45],
...: [63 ,59, 84, 36, 34 ,51],
...: [58, 53, 59, 22, 77 ,64],
...: [35 ,77, 60, 76, 57, 44]]

In [18]: [sorted(i)[1] for i in zip(*A)]
Out[18]: [54, 53, 59, 36, 40, 44]

zip(*A) will transpose your list of list so the columns become rows.



如果您有重复的值,例如:
In [19]: A = [[72, 76, 44, 62, 81, 31], 
...: [54 ,36 ,82 ,71 ,40, 45],
...: [63 ,59, 84, 36, 34 ,51],
...: [35, 53, 59, 22, 77 ,64], # 35
...: [35 ,77, 50, 76, 57, 44],] # 35

如果您需要同时跳过 35 s,您可以使用 set() :
In [29]: [sorted(list(set(i)))[1] for i in zip(*A)]                                                                                                                                                                
Out[29]: [54, 53, 50, 36, 40, 44]

关于python - 获取二维数组中每列的第二个最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60635934/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com