2016-12-24 5 views
-4

Я думаю, что это очень простой вопрос, но я ошибаюсь. Я занимался программированием на языке программирования python в онлайн-курсе, и я попытался преобразовать этот код в цикл.Преобразование списка в цикл while

x = [y for i in range(300)] 

Мой ответ:

counter=0 
while counter<300: 
    x=y 
    counter+=1 

В чем разница между этими двумя?
Как преобразовать первый фрагмент во второй?

+0

х должен быть список, и в вашем «перевод», это не список (кроме того, если вы работаете со списками, '=' не что вы хотите, но 'append'), и вы просто переписываете x с y. Однако вы никогда нигде не объявляли y, так что это тоже синтаксически неверно. Является ли это точным кодом, над которым вы работаете? Понимание также неверно. – idjaw

+0

'x = list (range (300))' еще лучше, но это уже неправильно: 'x = [y для i в диапазоне (300)]' –

+0

y определено. Упражнение имеет значения в собственном симуляторе. Я думаю, что он просто дал мне первую строку и хотел, чтобы я преобразовал его в цикл – Prethia

ответ

2

Выход список понимания является list, и вы не создали список в коде, так как мы читаем в список понимание, которое идет как x = [y for i in range(300)] означает, что x список из 300 элементов, которые сохраняют значение переменная y. И это может быть записано в while цикле, как:

x = [] 
counter = 0 

y = 10 # Some value defined in your code. 
while counter < 300: 
    x.append(y) 
    counter += 1 
+0

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

 Смежные вопросы

  • Нет связанных вопросов^_^