На основе решения @ shehan:
x = [1, 2, 3, 4]
def normalize(x):
return [round((i - min(x)) / (max(x) - min(x)), 2) for i in x]
print(normalize(x))
дает вам именно то, что вы хотели.Результат округляется в отличие от других решений (поскольку это то, что вы хотели).
результат:
[0.0, 0.33, 0.67, 1.0]
Для варианта ответа в цикле, чтобы оператор мог понять:
x = [1, 2, 3, 4]
def normalize(x):
# A list to store all calculated values
a = []
for i in range(len(x)):
a.append([(x[i] - min(x)) / (max(x) - min(x))])
# Notice I didn't return here
# Return the list here, outside the loop
return a
print(normalize(x))