I am having hard time to figure out how to find min from a list for example
somelist = [1,12,2,53,23,6,17]
how can I find min and max of this list with defining (def
) a function
I do not want to use built-in function min
from __future__ import division
somelist = [1,12,2,53,23,6,17]
max_value = max(somelist)
min_value = min(somelist)
avg_value = 0 if len(somelist) == 0 else sum(somelist)/len(somelist)
If you want to manually find the minimum as a function:
somelist = [1,12,2,53,23,6,17]
def my_min_function(somelist):
min_value = None
for value in somelist:
if not min_value:
min_value = value
elif value < min_value:
min_value = value
return min_value
Python 3.4 introduced the statistics
package, which provides mean
and additional stats:
from statistics import mean, median
somelist = [1,12,2,53,23,6,17]
avg_value = mean(somelist)
median_value = median(somelist)
Return min and max value in tuple:
def side_values(num_list):
results_list = sorted(num_list)
return results_list[0], results_list[-1]
somelist = side_values([1,12,2,53,23,6,17])
print(somelist)
0
and max is at index length
(or vice versa). Once sorted there is no need to use min()
or max()
to find those values.
Oct 1 '18 at 0:22
Only a teacher would ask you to do something silly like this. You could provide an expected answer. Or a unique solution, while the rest of the class will be (yawn) the same...
from operator import lt, gt
def ultimate (l,op,c=1,u=0):
try:
if op(l[c],l[u]):
u = c
c += 1
return ultimate(l,op,c,u)
except IndexError:
return l[u]
def minimum (l):
return ultimate(l,lt)
def maximum (l):
return ultimate(l,gt)
The solution is simple. Use this to set yourself apart from obvious choices.
list=[]
n = int(input("Enter the length of your list: "))
for i in range (1,n+1):
a=int(input("Enter the %d number: " %i ))
list.append(a)
min=list[0]
max=list[0]
for i in range(1,n):
if max<list[i]:
max=list[i]
if min>list[i]:
min=list[i]
print(" %d is the biggest number " %max)
print(" %d is the smallest number " %min)