我有以下串列
L= [383, 590, 912, 618, 203, 982, 364, 131, 343, 202]
如果我使用min(L)我得到的功能131
是否可以知道超過 200 的數字串列中的最小值?我想像min(L, Key>200)
期望的結果是 202
uj5u.com熱心網友回復:
您可以將該min()函式與使用for回圈的串列遍歷結合使用,以在查找最小值時引入條件:
L= [383, 590, 912, 618, 203, 982, 364, 131, 343, 202]
m = min(i for i in L if i > 200)
print(m)
輸出:
202
uj5u.com熱心網友回復:
如果對使用任何其他庫沒有限制,可以通過在 NumPy 中進行索引輕松實作:
import numpy as np
s = np.array(L)
s[s > 200].min()
# 202
非常推薦在大型陣列上使用 NumPy,它可以在性能和記憶體使用方面(在大型陣列上)以更有效的方式輕松處理此類問題。
uj5u.com熱心網友回復:
這個解決方案沒有這個快,只是一個替代方案:
min(L, key=lambda x: x>200 and x or float('inf'))
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/496601.html
標籤:Python python-3.x 算法 分钟
下一篇:如何使用演算法遍歷圖
