Предположим, я хочу создать словарь, который отображает цифры для чисел меньше, чем 100, заканчивающихся в этих цифр следующим образом:Ошибки при изменении словаря в Python
d = {}
for i in range(100):
r = i % 10
if r in d:
d[r] = d[r].append(i)
else:
d[r] = [i]
print d
Прежде всего, когда я в 20, d [ r], по-видимому, является NoneType, когда я пытаюсь добавить его, выбросив ошибку. Почему это должно быть? Во-вторых, я чувствую, что мой подход неэффективен, так как работа по проверке, не распространяется ли r в d. Что-то вроде этого было бы лучше, я чувствую:
case(d[r]) of
SOME(L) => d[r] = L.append(i)
| NONE => d[r] = [i]
Есть ли способ иметь эту логику в python?
'd [r] = d [r] .append (i) 'должно быть' d [r] .append (i) '. 'list.append' изменяет список и не возвращает новый список. –