For-each tsükkel
For-each tsükli puhul omandab tsüklimuutuja (control variable) igal iteratsioonil itereeritava jada ühe elemendi väärtuse kuni kõik elemendid on läbi käidud. Kui tegemist on järjestatud jadaga (nt järjend, ennik, sõne), siis käiakse elemendid läbi vastavalt nende järjestusele. Järjestamata jada puhul (nt hulk) omandab tsüklimuutuja elementide väärtusi suvalises järjekorras. For-each tsüklit kasutatakse enamasti olukordades, kus soovitakse lihtsalt kõik elemendid läbi itereerida ning nende asukoht jadas (indeks) ei ole kasutaja jaoks oluline.
Omadused:
Elemendi asukoht jadas (indeks) ei ole kättesaadav;
Tsüklimuutuja (control variable) omandab otse elemendi väärtuse;
Itereerib üle kõikide etteantud jada elementide;
Saab itereerida ka üle järjestamata jadade (hulk) või indekseerimata andmestruktuuride (sõnastik) elementide.
for control_variable in statement:
# Your code
Kus control_variable
on vabalt valitav tsüklimuutuja nimi ning statement
jada, mille üle soovitakse itereerida.
greeting = "Hello"
for letter in greeting:
print(letter)
# H
# e
# l
# l
# o
some_list = [5, 2, 8]
for element in some_list:
print(element)
# 5
# 2
# 8
some_tuple = ("Iterate", "Over", "Me")
for el in some_tuple:
print(el)
# "Iterate"
# "Over"
# "Me"
key
ja väärtuste value
järgi:some_dict = {"one": 1, "two": 2}
for key in some_dict:
# By default the loop iterates over keys
print(key, end=" ") # --> one two
# But we can also iterate over values
for val in some_dict.values():
print(val, end=" ") # --> 1 2
# And even over both keys and valuess simultaneously
for key, value in some_dict.items():
print(key, value)
# one 1
# two 2
Objekti, mille järgi saab itereerida, nimetatakse iteratiivseks objektiks.
with open("text.txt") as file:
for line in file:
print(line):
Python'is on palju sisseehitatud funktsioone, mis võtavad
argumendiks iteratiivset objekti: näiteks list(), "".join()
jm.
>>> ",".join(["a", "b", "c"])
'a,b,c'
>>> ",".join({"x": 1, "y": 2})
'y,x'
>>> list("python")
['p', 'y', 't', 'h', 'o', 'n']
>>> list({"x": 1, "y": 2})
['y', 'x']