NameError: свободная переменная 'list', на которую ссылается перед присваиванием в закрытой области видимости - PullRequest
0 голосов
/ 24 февраля 2020

Я пытаюсь закодировать функцию десятичного масштабирования, которая получает список списков в качестве входного параметра.

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', на которую ссылается перед присваиванием в прилагаемой области действия

Может кто-нибудь предложить, пожалуйста, способ исправить это? А может быть, более эффективный способ сделать это?

1 Ответ

1 голос
/ 24 февраля 2020

Вы используете список list = [], измените имя этого списка, и он должен работать

...