Как преобразовать цикл while в цикл for в python?

#python #list #for-loop #while-loop

#python #Список #цикл for #цикл while

Вопрос:

 list_from=[1,2,3,4,5,6,7,8,9,10]
list_from2=[a,b,c,d,e,f,g,h,i,j]
from_dict={list_from[i]:list_from2[i] for i in range(len(list_from2))}
list_to = [1,2,5,10]
save=[]
num=0
while num<=len(list_to):
    try:
        if list_to[num] in list_from:
            save.append(from_dict[list_to[num]])
        else:
            save.append('')
       num =1
   except:
        break
  

У меня есть код, подобный приведенному выше. Я хочу преобразовать этот код цикла while в цикл for.
(Также, если возможно, я хочу преобразовать в код для понимания списка)
Как я могу это сделать?
Спасибо за вашу помощь.

Комментарии:

1. Я думаю, что у меня была ошибка в коде. Кажется, что пустой список «сохранить» вводится дважды. Извините за это.

2. для числа в list_from

3. from_dict = dict(zip(list_from, list_from2)) было бы проще.

4. как было бы save = [from_dict.get(x, '') for x in list_to] .

Ответ №1:

Вы можете просто заменить свой

 num = 0
while num <= len(list_to):
  

Автор:

 for num in range(0, len(list_to)):
  

Таким образом, ваша переменная «num» автоматически принимала бы значение 0 , затем 1 , … len(list_to)-1

Ответ №2:

С помощью цикла For

 for i in range(len(list_to)):
    if list_to[i] in list_from:
        save.append(from_dict[list_to[i]])
    else:
        save.append('')