# 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://www.w3resource.com/python-exercises/puzzles/python-programming-puzzles-32.php

**Weekly Trends and Language Statistics**- Weekly Trends and Language Statistics