Я не знаю, что означает эта ошибка и как ее решить. Я хочу добавить ключ страны и значение Франции в словарь

#python #dictionary #for-loop #if-statement #console

Вопрос:

 dictionary_of_spliting = {"Food":"Honey",
                          "Trash1":"some",
                          "Trash2":"some",
                          "Trash3":"your",
                          "Thing":"resorces"}

for keys in dictionary_of_spliting:
    if var <= 12:
        dictionary_of_spliting["Country"] = "France"
 
 Traceback (most recent call last)
  File "C:UsersIKPycharmProjectsMore sting methods.py", line 20, in <module>
   for keys in dictionary_of_spliting:
RuntimeError: dictionary changed size during iteration
 

Комментарии:

1. Почему ты вообще зацикливаешься? Просто используйте dictionary_of_spliting["Country"] = "France" строку, если вы хотите связать строку «Страна» с «Францией». Ошибка возникает из-за того, что вы изменяете словарь во время его итерации с помощью for цикла.

2. var не определено

3. @Carcigenicate, почему ты не добавил это в качестве ответа? (искренне удивляясь)

4. @queste, потому что их намерения неясны. Мне не нравится публиковать ответы, если я не думаю, что хорошо понимаю вопрос. В настоящее время я не понимаю, почему они зацикливаются, поэтому мне неудобно публиковать ответ, пока их намерения не станут яснее. Обратите внимание, что текущий ответ решает непосредственную проблему, но код, который они рекомендуют, по-прежнему не имеет никакого смысла. Зачем зацикливаться на поиске по словарю?

Ответ №1:

Вы изменяете диктант во время его итерации — это недопустимо, так как это нарушает базовый итератор.

Вы можете заменить

 for keys in dictionary_of_splitting
 

с

 for keys in list(dictionary_of_splitting)
 

чтобы сделать копию записей и предотвратить эту проблему. Вы также можете использовать dictionary_of_splitting.keys() при использовании python2