Наилучшее представление 4-х индексного объекта с целым числом - PullRequest
0 голосов
/ 06 марта 2020

Я пытаюсь представить переменную (символ) с 4 фиктивными индексами (A_ijkl) с целым числом (4ijkl, где i, j, k, l может быть от 0 до 9. Например, 41586, 45862, 47785 и др. c.). Это число сохраняется в массиве, который может содержать другие переменные, которые представляют другие символы (3xx, 5xxx..et c). Поскольку база для символа, я пытаюсь извлечь индексы, это 40000 любое число, после которого это индекс, который мне нужно собрать. Например, 41256-> Символ: 4 Индекс: [1,2,5,6].

g1=41541 #test 
t1=g1-40000
bs=1000  
lst_indx=[]
while t1:
  indx=int(t1/bs)
  t1=t1-(indx*bs)
  bs=bs/10
  lst_indx.append(indx)
print(lst_indx)  

Этот код выдает: [1, 5, 4, 1]

Я знаю python подпрограммы делают то же самое, что я пытаюсь сделать. Как например:

g1=41541 #test 
t1=g1-40000
res = list(map(int, str(t1)))
print(res)

Мой вопрос заключается в том, что является более эффективным и лучшим способом экономии памяти для извлечения индексов. Я буду делать это для массива с миллионами чисел, которые представляют символы с 1, 2, 3 или 4 индексами.

1 Ответ

0 голосов
/ 06 марта 2020

Поскольку строковое преобразование целого числа выполняется с помощью встроенной функции, записанной в C, это будет более эффективно, чем реализация в Python:

res = list(str(g1)[1:])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...