Огромные коллекции в Python - PullRequest
0 голосов
/ 10 февраля 2009

В основном я храню миллионы значений vector3 в списке. Но сейчас vector3s определены так:

[5,6,7]

который я считаю списком. Значения не будут изменены, и мне не нужны какие-либо функции vector3.

Это самый эффективный способ сделать это?

Ответы [ 3 ]

13 голосов
/ 10 февраля 2009

Если вы храните миллионы из них, лучший способ (как для скорости, так и для использования памяти) - использовать numpy .

Если вы хотите избежать NumPy и использовать только встроенные модули Python, использование кортежей вместо списков сэкономит вам некоторые издержки.

6 голосов
/ 10 февраля 2009

Лучше всего использовать кортежи, а не список. Кортежи работают быстрее списков и не могут быть изменены после определения. http://docs.python.org/tutorial/datastructures.html#tuples-and-sequences

edit: точнее, вероятно, список кортежей будет работать лучше всего: [(4,3,2), (2,4,5) ...]

4 голосов
/ 10 февраля 2009

Традиционно вы должны профилировать свой код, находить узкие места и устранять их по мере необходимости. Ответ: «Нет, это, наверное, не самый эффективный способ », но имеет ли это значение? Это может быть, и когда это произойдет, это может быть исправлено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...