Использование коллекции, которая ссылается на объекты, вместо использования копий

#python

#python

Вопрос:

Мне нужно создать коллекцию на Python, где мне нужно иметь какой-то произвольный доступ и поместить некоторые довольно большие и сложные объекты в качестве элементов. Допустим, у меня есть элементы E1, E2, E3, и мне нужно, чтобы они были в списке [E1, E2, E1, E3, E2, E2, E1]. Я бы хотел не копировать объекты, а просто иметь ссылки на E1, E2, E3. Если я использую список, у меня может быть произвольный доступ через позицию. Dict также был бы хорош.

Вопрос: Какую коллекцию я должен использовать, чтобы ссылки на E1, E2, E3 и т. Д. Были только внутри коллекции, а не копировались как элементы коллекции?

Редактировать: Очевидным решением было бы использовать две коллекции: первая, которая содержит E1 — E3 в качестве элементов. И второй, который содержит «порядок», в котором они должны использоваться в качестве элементов — с ключом к первой коллекции в качестве элемента.

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

1. Любая коллекция. Это поведение по умолчанию.

2. Единственные вещи, передаваемые по значению, — это примитивы. Все остальное передается как ссылка.

3. Проверьте это: repl.it/repls/SquigglyCapitalCommunication

4. @Blorgbeard: Как насчет массивов numpy?

5. Да, они работают одинаково. Попробуйте!