я использую Python, и у меня есть список наборов, построенных, как это:Добавить значение элемента в списке наборов
list = [set([])]*n
... где п число наборов I хочу в списке. Я хочу добавить значение к определенному набору в списке. Скажем, второй сет. Я попытался
list[1].add(value)
Но вместо этого добавляет значение каждый набор в списке. Это поведение довольно неинтуитивно для меня. В результате дальнейших тестов, я думаю, я нашел проблему: список, по-видимому, содержит 10 экземпляров одного и того же набора или десять указателей на один и тот же набор или что-то еще. Создание списка с помощью повторных вызовов
list.append(set([]))
позволило мне использовать синтаксис выше для добавления элементов в отдельные наборы. Поэтому мой вопрос таков: что именно происходит в моем первом методе построения списка? Понятно, что я не понимаю синтаксис так хорошо. Кроме того, есть ли лучший способ инициализировать список n-элементов? Я использовал этот синтаксис некоторое время, и это моя первая проблема.
Как примечание стороны, 'набор()' кажется более очевидным образом, чтобы написать 'установить ([]) '. –
Ах, спасибо за подсказку. Я всегда видел это с квадратными скобками внутри, я думал, что они являются обязательными. Чем больше ты знаешь! – Kapelson