Вопрос задан 04.11.2023 в 20:50. Предмет Информатика. Спрашивает Султаггазы Каракат.

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)
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Джамалова Аделя.

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

if type(e) == 'str':

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

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

if isinstance(e, str):

0 0
Отвечает Мордухаев Боря.

Ответ:

строка 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.

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Ваш код пытается добавить элементы в словарь, используя ключ `current_str`. Однако, когда `current_str` равно `None`, происходит ошибка `KeyError: None`. Это происходит, потому что вы пытаетесь обратиться к ключу, которого не существует в словаре.

Ваш код должен инициализировать `current_str` как пустую строку, а не как `None`. Тогда, когда вы впервые встретите строку в списке, `current_str` будет иметь значение, и вы сможете добавить элементы в словарь.

Вот исправленный код:

```python A = ['first', 1, 2, 3, 'second', 10, 20, 'third', 15, 56, 70, 'fourth', -50] my_dict = {} current_str = ''

for e in A: if type(e) == str: my_dict[e] = [] current_str = e else: my_dict[current_str].append(e)

print(my_dict) ```

В этом коде `current_str` инициализируется как пустая строка, а не как `None`. Когда встречается строка в списке, она становится текущей строкой, и в словарь добавляется новая пустая список с этой строкой в качестве ключа. Затем, когда встречаются числа, они добавляются в список текущей строки.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос