Создание дорогостоящего массива Python глобальным

Вы можете использовать словари для этого. Словари - это хранилища ключей и ценностей.

>>> dct = {'x': 1, 'y': 2, 'z': 3}
>>> dct
{'y': 2, 'x': 1, 'z': 3}
>>> dct["y"]
2

Вы можете использовать имена переменных ключей для достижения эффекта переменных переменных без риска для безопасности.

>>> x = "spam"
>>> z = {x: "eggs"}
>>> z["spam"]
'eggs'

В тех случаях, когда вы думаете сделать что-то вроде

var1 = 'foo'
var2 = 'bar'
var3 = 'baz'
...

список может быть более подходящим, чем dict. Список представляет упорядоченную последовательность объектов с целыми индексами:

l = ['foo', 'bar', 'baz']
print(l[1])           # prints bar, because indices start at 0
l.append('potatoes')  # l is now ['foo', 'bar', 'baz', 'potatoes']

Для упорядоченных последовательностей списки удобнее, чем dict с целыми ключами, потому что списки поддерживают итерацию в порядке индекса, slicing , append и другие операции, которые потребуют неудобного управления ключами с помощью dict.

0
задан Hauke Reddmann 23 March 2019 в 20:33
поделиться

1 ответ

Если вы поместите вычисление bigArray в модуль bigArray.py, вы сможете использовать его в любом другом модуле, импортировав его специально:

from bigArray import bigArray

Если вы хотите, чтобы массив вычислялся только тогда, когда на него сначала ссылаются, ваш модуль bigArray.py может раскрыть его с помощью функции.

# bigArray.py
#
bigArray = None
def getBigArray():
    if bigArray is None:
       ... build the bigArray ...
    return bigArray

# otherModule.py
#
from bigArray import getBigArray

   ...
   arr = getBigArray()  # to use the array
   ...
0
ответ дан Alain T. 23 March 2019 в 20:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: