Я пытаюсь закодировать функцию десятичного масштабирования, которая получает список списков в качестве входного параметра.
def decimal_scale(data):
#calculate the maximum absolute value for each attribute
grouped_attributes = [list(attributes) for attributes in zip(*data)]
#absolute list of list grouped attributes
absolute_attributes = []
for item in grouped_attributes:
list = []
for i in range(0, len(item)):
list.append(abs(item[i]))
absolute_attributes.append(list)
max_att_val = []
for abs_att_list in absolute_attributes:
abs_att_list.sort()
max_att_val.append(abs_att_list[-1])
#calculate the appropriate k for each attribute
k_attributes = []
for max in max_att_val:
k = 0
while max/(10**k) > 1:
k+=1
k_attributes.append(k) #appropriate ks for all the Attributes
res = []
for item in data:
res.append([item[i]/(10**(k_attributes[i])) for i in range(0, len(item))])
return res
Когда я запускаю этот код, я получаю ошибку :
Файл "mynormalize.py", строка 39, в
grouped_attributes = [list(attributes) for attributes in zip(*data)]
NameError: свободная переменная 'list', на которую ссылается перед присваиванием в прилагаемой области действия
Может кто-нибудь предложить, пожалуйста, способ исправить это? А может быть, более эффективный способ сделать это?