I have the following list
L= [383, 590, 912, 618, 203, 982, 364, 131, 343, 202]
If I use the function min(L)
I get 131
Is it possible to know the min value in the list of numbers that exceed 200?
I guess something like min(L, Key>200)
The desired result would be 202
CodePudding user response:
You can use the min()
function in combination with a list traversal using a for
loop as follows to introduce conditions when finding minimums:
L= [383, 590, 912, 618, 203, 982, 364, 131, 343, 202]
m = min(i for i in L if i > 200)
print(m)
Output:
202
CodePudding user response:
If there is no limitation on using any other libraries, it can be easily achieved by indexing in NumPy:
import numpy as np
s = np.array(L)
s[s > 200].min()
# 202
Using NumPy on large arrays are much recommended, which can easily handle such problems in more efficient way in terms of performance and memory usage (on large arrays).
CodePudding user response:
this solution isn't as fast as this one, just an alternative:
min(L, key=lambda x: x>200 and x or float('inf'))