Могу ли я найти список с помощью цикла "for"?

У меня есть несколько сомнений относительно цикла for:

  • Я знаю, что это итератор, но какая разница с циклом while?
  • Можно ли сделать поиск с for?
-2
задан 30.11.2019, 03:03
2 ответа

В Пайтоне цикл for - специальный синтаксис, чтобы действовать с iteradores.

, Когда tГє ты делаешь:

for e in iterable:
   codigo

BГЎsicamente происходит следующее:

  1. Пайтон призывает iter(iterable) на iterable, который ты определил вслед за словом in. Это предоставляет ему то, что называются iterador , который является типом объекта, на котором возможно делать next(), чтобы получать следующий элемент.
  2. Делает next() на iterador, полученном в 1.
  3. , Если он производит ее ему excepciГіn StopIteration, состоит в том, что нет элементов на которых повторять, а следовательно он выходит из цикла. for дается из-за законченного
  4. , Если нет excepciГіn, стоимость, возвращенная next() распределяется в переменную e, которые ты поместил бы перед словом in.
  5. выполняет codigo, которые были в теле for. Этот cГіdigo может использовать переменную e, чтобы соглашаться на элемент, на котором estГЎ повторяя
  6. , Законченные codigo, возвращается в шаг 2.

Следовательно, в фоне цикл for - секретная форма цикла while, которые в частности serГ - в следующего:

iterable_tmp = iter(iterador)
while True:
    try:
        e = next(iterable_tmp)
    except StopIteration:
        break               # Salir del bucle
    codigo

Следовательно любая вещь, которую ты мог бы делать в codigo этого while, ты можешь делать это tambiГ©n в одном for.

Например давайте предполагать, что мы хотим смотреть, если данный список содержит или нет некую информацию:

lista = [1, 2, 50, 10, 3]
dato = 10

harГ - в в следующей форме:

encontrado = False
for elemento in lista:
    if elemento == dato:
        encontrado = True
        break

, Когда True заканчивает этот цикл, переменную encontrado serГЎ, если информация encontrГі, или False, если нет.

3
ответ дан 01.12.2019, 10:39

Циклы for использованы для циклов, что уже estГЎ определенный nГєmero повторений, и циклы while подают лучше для циклов, где nГєmero повторений он может меняться в зависимости от двух факторов:

  1. Из стоимости, что “comparan” начальным способом, когда могут состоять в том, чтобы, ввиду condiciГіn не умудрились выполнить

  2. Операции, которые осуществляются внутри того же цикла.

И на твоем другом вопросе, segГєn, который ты нуждался в том, чтобы искать и во что область (файлы, arrays, и т.д.) ты мог бы или нет использовать это, так как могли бы существовать лучшие альтернативы или методы, уже созданные для этого типа проблемы.

Надеялся, что я позволяю себе понимать ;) Привет

0
ответ дан 01.12.2019, 10:39