2017-02-06 11 views
-1

Я хотел бы иметь список, как это:Python: как объявить начало списка с 1 и интервалом 4, 100 элементов?

[1,5,9,13,17,21,25,29,33,37,…] 

(1) Как быстро объявить его?

(2) Как это сделать с «выходом»?

+0

https: //docs.python .org/3/library/functions.html # func-range – spectras

+1

Вы можете использовать 'list (range (1,401,4))'. диапазон возвращает генератор, но вы можете написать свой собственный генератор, используя 'yield'. –

+2

Возможный дубликат [Python: как вычислить сводку списка без создания всего этого списка в первую очередь?] (Http://stackoverflow.com/questions/42059247/python-how-to-calculate-a-summary-of- а-список-без создания-это-всего-список-Fi) –

ответ

2

может быть, вы можете попробовать это:

def generate_list(size, interval): 
    flag = 0 
    number = 0 
    while True: 
     if flag >= size: 
      break 
     number += 1 
     if number % interval == 1: 
      flag += 1 
      yield number 


def print_list(): 
    for i in generate_list(100, 4): 
     print i 


print_list() 

, если вы не хотите использовать ключевое слово yield, вы можете использовать эту программу строки:

print list(range(1,401,4))