﻿ Python: Rescale and shift numbers so that they cover the range [0, 1] - w3resource

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.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.

﻿