Python: Rescale and shift numbers so that they cover the range [0, 1]
Python Programming Puzzles: Exercise-32 with Solution
Write a Python program to rescale and shift numbers in a given list, so that they cover the range [0, 1].
Input: [18.5, 17.0, 18.0, 19.0, 18.0] Output: [0.75, 0.0, 0.5, 1.0, 0.5] Input: [13.0, 17.0, 17.0, 15.5, 2.94] Output: [0.7155049786628734, 1.0, 1.0, 0.8933143669985776, 0.0]
Visual Presentation:
Sample Solution:
Python Code:
# Define a function named 'test' that takes a list 'nums' as input
def test(nums):
# Find the minimum and maximum values in the list and assign them to variables 'a' and 'b'
a = min(nums)
b = max(nums)
# Check if the range between the minimum and maximum values is zero
if b - a == 0:
# If the range is zero, return a list with 0.0 as the first element and 1.0 for the remaining elements
return [0.0] + [1.0] * (len(nums) - 1)
# Iterate over the indices of the list
for i in range(len(nums)):
# Rescale and shift each element in the list to cover the range [0, 1]
nums[i] = (nums[i] - a) / (b - a)
# Return the modified list
return nums
# Assign a specific list of numbers 'nums' to the variable
nums = [18.5, 17.0, 18.0, 19.0, 18.0]
# Print a message indicating the operation to be performed
print("Original list:")
# Print the original list of numbers
print(nums)
# Print a message indicating the operation to be performed
print("Rescale and shift the numbers of the said list so that they cover the range [0, 1]:")
# Print the result of the test function applied to the 'nums' list
print(test(nums))
# Assign another specific list of numbers 'nums' to the variable
nums = [13.0, 17.0, 17.0, 15.5, 2.94]
# Print a message indicating the operation to be performed
print("\nOriginal list:")
# Print the original list of numbers
print(nums)
# Print a message indicating the operation to be performed
print("Rescale and shift the numbers of the said list so that they cover the range [0, 1]:")
# Print the result of the test function applied to the 'nums' list
print(test(nums))
Sample Output:
Original list: [18.5, 17.0, 18.0, 19.0, 18.0] Rescale and shift the numbers of the said list so that they cover the range [0, 1]: [0.75, 0.0, 0.5, 1.0, 0.5] Original list: [13.0, 17.0, 17.0, 15.5, 2.94] Rescale and shift the numbers of the said list so that they cover the range [0, 1]: [0.7155049786628734, 1.0, 1.0, 0.8933143669985776, 0.0]
Flowchart:
Python Code Editor :
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
Previous: Find the coordinates of a triangle with the given side lengths.
Next: Find the positions of all uppercase vowels (not counting Y) in even indices.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://w3resource.com/python-exercises/puzzles/python-programming-puzzles-32.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics