如何检查两个列表,哪一个与其他列表相反,并在每个位置提取最小值,例如:
list1 = [3,4,5,2,1,7,4,1]
list2 = [1,4,7,1,2,5,4,3]
Output = [1,4,5,1,1,5,4,1]
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
min(list1, list2)
Run Code Online (Sandbox Code Playgroud)
但这是错的.
您需要使用as函数对列表执行映射min,例如:
>>> list(map(min, list1, list2))
[1, 4, 5, 1, 1, 5, 4, 1]
Run Code Online (Sandbox Code Playgroud)
zip或使用zip和列表理解的等效方法:
>>> [min(t) for t in zip(list1, list2)]
[1, 4, 5, 1, 1, 5, 4, 1]
Run Code Online (Sandbox Code Playgroud)
对于大型列表,我们可以通过使用numpy来提升性能并处理数组.例如:
>>> import numpy as np
>>> np.min((list1, list2), axis=0)
array([1, 4, 5, 1, 1, 5, 4, 1])
Run Code Online (Sandbox Code Playgroud)
如果结果必须再次成为香草列表,我们可以将结果传递回列表:
>>> list(np.min((list1, list2), axis=0))
[1, 4, 5, 1, 1, 5, 4, 1]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
36 次 |
| 最近记录: |