Для этого есть встроенная функция range
.Range не создает список, но итератор, который ведет себя как список и должен быть достаточно для вас (итератор - это «списки», но их элемент вычисляется только по запросу).
Итак:
a = range(10)
print(a) #-> range(0, 10)
for i in a:
print(a) #-> 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
print(a[2]) #-> 2
print(a[0]) #-> 0
Если вы не хотите начинать с 0, просто поставьте range(start_value, end_value)
.И если вы хотите, чтобы пользовательское приращение использовалось, используйте range(start_value, end_value, increment)
(приращение по умолчанию равно 1, но если вы хотите вернуться назад, вы можете использовать -1).
Редактировать:
Чтобы создать таблицу, подобнуюВ вашем примере вы можете использовать эту маленькую функцию:
def ct(nStart, nEnd, nPerSubTable):
r = [] # Setup initial variable
subTable = []
for i in range(nStart, nEnd): # The main ranging
subTable.append(i)
if len(subTable) == nPerSubTable: # When the len of the sub table hit the requested one append to r and reset sub table
r.append(subTable)
subTable = []
if len(subTable) > 0: # If there is some left over because the last subtable is smaller than expected, add it any way
r.append(subTable)
return r