Проблема
Я создаю словарь с пустыми списками как значения следующим образом.
>>> words = dict.fromkeys(['coach', 'we', 'be'], [])
Словарь выглядит следующим образом.
>>> words
{'coach': [], 'be': [], 'we': []}
Когда я добавляю значение в один список, это значение добавляется ко всем из них, как в этом примере.
>>> words['coach'].append('test')
{'coach': ['test'], 'be': ['test'], 'we': ['test']}
Вопрос
Мой вопрос состоит из двух частей. Во-первых, почему это происходит? Во-вторых, что я могу сделать? То есть, как я могу добавить значение только к одному списку?
Я предполагаю, что при создании словаря я сделал все списки, указывающие на один и тот же объект. Но я не понимаю, как это может быть из-за того, что когда я ввожу 0
вместо []
в создание словаря, а затем добавляю значения вместо их добавления, значения ведут себя по-другому, как если бы они указывали на разные объекты.
Буду признателен за любой ввод. Заранее благодарю вас!