Min-maxing
level of challenge 3/10
Min-maxing
- Define a function named largest_difference
- that takes a list of numbers as its only parameter.
- Your function should compute and return the difference
- between the largest and smallest number in the list.
For example:
- the call largest_difference([1, 2, 3])
- should return 2 because 3 - 1 is 2.
You may assume that no numbers are smaller or larger than -100 and 100.
Hint:
- Split the problem up into sub problems:
- First find the smallest number.
- Then find the largest number.
- Then compute their difference and return it.
- To find the smallest number you can use the min() built-in.
- Alternatively you can set smallest = 100 and loop over each number in the input list. Whenever you see a smaller one, set smallest to it.
# My solution
def largest_difference(numbers):
sm_number = numbers
la_number = numbers
smaller = min(sm_number)
largest = max(la_number)
return largest - smaller
print(largest_difference([1, 2, 3, 5, 6]))
# short solution
def largest_difference(numbers):
return max(numbers) - min(numbers)
# Another solution
def largest_difference(numbers):
smallest = 100
for n in numbers:
if n < smallest:
smallest = n
largest = -100
for n in numbers:
if n > largest:
largest = n
difference = largest - smallest
return difference
Top comments (4)
I think another "short" solution would be to use the sorted() function. Like this:
Thanks for sharing you can test your solution here: pythonprinciples.com/challenges/
My solution is:
def largest_difference(list1):
list1.sort()
minList = list1[0]
maxList = list1[-1]
return maxList - minList
print(largest_difference([5,8,9,12,1]))
Thanks for sharing you can test your solution here: pythonprinciples.com/challenges/