при добавлении в список значения int возвращается None

Рейтинг: 0Ответов: 1Опубликовано: 12.07.2023

надо написать функцию, которая принимает список из чисел и возвращает словарь, где ключ - хеш-значение объекта, а значение сам объект. причем если в списке объекты повторяются, значение по ключу должно быть в виде списка. для примера код: print (hash_as_key( [1, 2, 3, 4, 5, 5, 5] )) должен возвращать {1: 1, 2: 2, 3: 3, 4: 4, 5: [5, 5, 5]}

почему то d = t.append(objects [i] ) возвращает None вместо списка, кто сталкивался с таким? в чем дело???

def hash_as_key(objects):
    list_hash = [hash(i) for i in objects]
    res_dict= dict()
    for i in range(len(list_hash)):
        try:
            t = res_dict[list_hash[i]]
            if type(t) == int:
                res_dict[list_hash[i]] = [t, objects[i]]
            if type(t) == list:
                d = t.append(objects[i])
                print(d)
                # -----> None
                res_dict[list_hash[i]] = d
        except:
            res_dict[list_hash[i]] = objects[i]
    return(res_dict) ``` 

Ответы

▲ 1Принят

Функция append() добавляет элемент в массив и ничего не возвращает(соответственно является методом). Вам нужно лишь вновь обратиться к тому массиву, что бы увидеть что элемент был добавлен.