2016-11-07 3 views
0

У меня есть списокPython Re Петля Список

masterList = [42,28,14,28,14,28,42,14] 

Этот список используется для генерации второго длинного списка, основываясь на вышеуказанных sequence.I хочет итерацию корыта списка и автоматически вновь повторить не корыто списка, пока условие выполняется.

Баки для ответа, извините вот пример: -

templateList = [42,28,14,28,14,28,42,14] 
newList =[] 

while newList < 1000: 
    for i in templateList: 
     a = newList[-1] + i 
    newList.append(a) 

print(newList) 

В результате я смотрю на это: NewList = [84, 140, 168, 224, 252, 308, 392, 420, 504, 560, 588, 644, 672, 728, 812, 840, 924, 980]

+2

Если вы можете дать более описательный пример (который включает в себя код, который вы уже написали), который поможет любому, кто хочет вам помочь. –

+1

Итак ... вы спрашиваете, как работает цикл? Итерирование до тех пор, пока не будет выполнено условие, - это определение цикла. Возможно, какой-то код поможет нам понять. – Hoopdady

ответ

0

Предположив, что condition является условие, что вамхочу, одна возможность есть:

while condition: 
    for i in range(len(masterList)): 
     pass # Do the stuff you want 

Внутренний цикл представляет собой цикл цикла, который выполняет итерацию по списку. Внешний контур гарантирует, что после завершения цикла for цикл запускается другой для цикла (при условии, что условие остается истинным).

+0

'for i in range (len (someseq)):' является анти-шаблоном. Обычно вы хотите 'for x в someseq:' или реже, 'для i, x в перечислении (someseq):'; либо вариант более общий (работает с произвольными итерами, а не только последовательностями), и они быстрее, чем повторная индексация. – ShadowRanger

+0

Спасибо, узнал что-то новое – wwl

0

Может быть, это то, что вы ищете:

condition = True # CHANGE ME 
lst = [1,2,3] 
i = 0 
while (condition): 
    elem = lst[i] 
    print(elem) # DO STUFF 
    i = (i+1) % len(lst) 
+0

Возможно, лучше использовать for-loop вместе с ['itertools.cycle'] (https://docs.python.org/2/library/itertools.html#itertools.cycle) с проверкой состояния и' break ', а не этот while-loop, который, как правило, медленнее в Python, чем for-loop. –