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