Цикл for - завершение

Цикл for - завершение

Limera1n

Сегодня мы наконец закончим изучать цикл for.

Давайте посмотрим, как применяется цикл относительно словарей. Создадим какой-нибудь словарик, например словарь игроков в какую-нибудь игру:

Чтобы пройтись по ключам мы можем просто использовать цикл и ввести одну переменную, например, назовем ее item, потом передаем словарь players, и если мы выводим item, то получаем именно ключи.

А чтобы вспомнить, что за ключи, и вообще про словари - советую ознакомиться в предыдущих уроках.

Мы можем воспользоваться функцией items, чтобы вывести ключи и значения вместе:

И вот на этом внимание. Если мы выводим таким способом - то в выводе мы получаем набор чего? Правильно, тюплов, то есть кортежей. И здесь вступает в силу наш любимый unpacking, который мы изучили в прошлом уроке. Соответственно, сейчас мы все и анпакнем:

Вот и все, ничего сложного, от слова совсем :)

Если же мы хотим просто пройтись по значениям, то мы можем воспользоваться циклом for и функцией values:

Есть такая штука, как вложенные циклы, например поиск всех комбинаций чисел из трех списков, которые в сумме дают ноль. Мы сейчас попробуем построить двойной вложенный цикл, для того, чтобы найти все комбинации элементов, которые в сумме дают ноль из двух списков:

Уххх, выглядит сложно, не так ли? Но это все на первый взгляд. Сейчас я расскажу, что да как.

Мы создали 2 листа с определенными знаечниями. Дальше мы создали pairs, в который мы будем добавлять пары значений из двух листов, которые в сумме дают нам ноль. Создаем цикл для первого листа, под ним создаем цикл для второго листа, то есть вложенный цикл. А работает это так, когда у нас начинается цикл первого листа, у нас берется первое значение из первого листа, во втором цикле у нас берется по очереди каждое значение. То есть, у нас получается так: первый цикл взял 2, второй цикл взял 2, дальше первый цикл взял 2, второй цикл взял -6, дальше первый цикл взял 2, второй цикл взял 8. И так далее, значение первого цикла не перейдет на второе до тех пор, пока второй цикл не пройдется по всем значениям у себя. Дальше мы создаем переменную sum, в которой у нас будет сумма x и y, то есть значений из двух листов, и создаем условие, если sum равен нулю, то мы записываем эту пару в лист pairs и выводим его.

Не сложно, если попробовать сделать самому :)

Report Page