Python: Rescale and shift numbers so that they cover the range [0, 1]
Rescale List to [0,1]
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.
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics