Это действительно простая вещь, но после прочтения документации я все еще не могу этого сделать. Я просто хочу создать список из 9 подсписков следующим образом
[[0, 0.05, 0.1, ..., 25],[0, 0.05, 0.1, ..., 25],[0, 0.05, 0.1, ..., 25],[0, 0.05, 0.1, ..., 25],[0, 0.05, 0.1, ..., 25],[0, 0.05, 0.1, ..., 25],[0, 0.05, 0.1, ..., 25],[0, 0.05, 0.1, ..., 25],[0, 0.05, 0.1, ..., 25]]
я делаю
[np.arange(0, 25.05, 0.05), np.arange(0, 25.05, 0.05), np.arange(0, 25.05, 0.05),
np.arange(0, 25.05, 0.05), np.arange(0, 25.05, 0.05), np.arange(0, 25.05, 0.05),
np.arange(0, 25.05, 0.05), np.arange(0, 25.05, 0.05), np.arange(0, 25.05, 0.05)]
но я получаю 24.9 , 24.95, 25. ])]
, хотя мне бы хотелось получить 24.9 , 24.95, 25. ]])]
. Как мне это сделать?
🤔 А знаете ли вы, что...
Python был создан Гвидо ван Россумом и впервые выпущен в 1991 году.
Лучше всего использовать list()
:
step = 0.05
sublist = [round(i * step, 2) for i in range(int(25 / step) + 1)]
res = [sublist.copy() for _ in range(9)]
print(res)
Вы можете использовать tolist()
с deepcopy()
:
import numpy as np
import copy
sublist = np.arange(0, 25.05, 0.05).tolist()
res = [copy.deepcopy(sublist) for _ in range(9)]
print(res)
list()
.Вы можете создать такой список списков без numpy и преобразования диапазонов в списки и из них.
Просто используйте конкатенацию списков, чтобы добавлять элементы в списки:
В приведенном ниже примере создается пример меньшего размера:
[[x/20 for x in range(int(1.05*20))] for _ in range(3)]
Результат:
[[0.0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1.0], [0.0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1.0], [0.0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1.0]]
Итак, чтобы сгенерировать тот, который вы просили в исходном сообщении, будет:
[[x/20 for x in range(int(25.05*20))] for _ in range(9)]