#python #python-3.x #for-loop
#python #python-3.x #для цикла
Вопрос:
Я пытался создать функцию, которая перебирает мои данные, стандартизирует значения и, наконец, помещает новые значения в список. Вот что я пытаюсь:
def standardize( num_list):
s = np.std(num_list)
Xmean = np.mean(num_list)
for i in num_list:
Xstd = (i - Xmean)/s
return Xstd
Созданная мной функция возвращает только одно значение.
Затем я попробовал это:
def standardize( num_list):
s = np.std(num_list)
Xmean = np.mean(num_list)
for i in num_list:
Xstd = (i - Xmean)/s
list = print(Xstd)
return
При этом выводятся все нужные мне значения, однако они не помещаются в список. Чего мне не хватает для создания списка?
Комментарии:
1.
return [(i - Xmean)/s for i in num_list]
Ответ №1:
Добавьте их в список:
def standardize(num_list):
s = np.std(num_list)
Xmean = np.mean(num_list)
lst = []
for i in num_list:
Xstd = (i - Xmean)/s
lst.append(Xstd)
return lst
Это также можно сделать с помощью понимания списка (хотя более сложные вычисления невозможны):
def standardize(num_list):
s = np.std(num_list)
Xmean = np.mean(num_list)
return [(i - Xmean) / s for i in num_list]
Ответ №2:
В вашем примере
def standardize( num_list):
s = np.std(num_list)
Xmean = np.mean(num_list)
for i in num_list:
Xstd = (i - Xmean)/s
return Xstd
Цикл присваивает переменную каждый раз, а затем, когда он возвращается, он дает вам последнее присвоенное ему значение.
Попробуйте определить список, добавив к нему, а затем вернуть список, например
def standardize( num_list):
s = np.std(num_list)
Xmean = np.mean(num_list)
return_list = []
for i in num_list:
Xstd = (i - Xmean)/s
return_list.append(Xstd)
return return_list
Не проверено