A = ['first', 1, 2, 3, 'second', 10, 20, 'third', 15, 56, 70, 'fourth', -50] my_dict = {}
current_str = None
for e in a
if type(e) == 'str'
my_dict[e] = []
current_str = e
else
my_dict[current_str].append(e)

print(my_dict)
Я не могу понять что не так, но выдаёт ошибку:
Traceback (most recent call last):
File (путь до проекта), line 9, in
my_dict[current_str]. append(e)
KeyError: None
(на языке python)

Цоніма Цоніма    3   12.02.2021 10:03    0

Ответы
СиняяАкула СиняяАкула  12.02.2021 10:10

В пятой строчке:

if type(e) == 'str':

Надо заменить 'str' на str, т.е. убрать кавычки

Или можете использовать

if isinstance(e, str):

ПОКАЗАТЬ ОТВЕТЫ
Масяня878 Масяня878  12.02.2021 10:10

строка 4: требуется ":"

Строка 5: type([object]) возвращает объект типа type, не str. Воспользуйтесь функцией isinstance(object, classinfo), где object - объект, требующий проверки типа, а classinfo - класс или кортеж классов.

[Справка]

isinstance(e, str) вернёт true, если e является str или false в ином случае

isinstance(e, (int, float, complex)) вернёт true, если e является int, float или complex и false в ином случае

строка 9: значение ключа dict не может быть None.

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика