-
Notifications
You must be signed in to change notification settings - Fork 83
Iteratoriai
Iteratorius - objektas, kurį galima iteruoti. Tai objektas, kuris grąžina duomenis, kas kartą naudojant metodą next().
Iteratorius galima kurti iš bet kokių objektų, kuriuos galime iteruoti su for ciklais, pvz.: string, list, dict ir t.t.
Tarkime žodis "Kėdė" yra objektas iš kurio galime sukurti iteratorių:
iteratorius = iter("Kėdė")
print(type(iteratorius))
# <class 'str_iterator'>
kai tik bus iškviestas iteratoriaus metodas next(), jis grąžins sekantį iteruojamo objekto segmentą, kol nebeliks ko iteruoti ir išmes StopIteration error:
print(next(iteratorius))
print(next(iteratorius))
print(next(iteratorius))
print(next(iteratorius))
print(next(iteratorius))
# K
# ė
# d
# ė
# Traceback (most recent call last):
# File "/home/blablabla/iterators.py", line 8, in <module>
# print(next(iteratorius))
# StopIteration
Atkreipkite dėmesį, kaip iteratorius įsimena savo būseną(state), ir žino, kad reikia spausdinti sekantį simbolį. Mūsų nuolat naudojami for ciklai yra sukurti iteratorių pagrindu. Parašykime primityvų for ciklą:
numeriai = [1, 2, 3]
for num in numeriai:
print(num)
# 1
# 2
# 3
O dabar tą pačią iteraciją atlikime be for sintaksės:
iteratorius = iter(numeriai)
while True:
try:
print(next(iteratorius))
except StopIteration:
break
# 1
# 2
# 3
O dabar parašykime šiek tiek universalesnę funkciją:
def iteruoklis(objektas, func):
iteratorius = iter(objektas)
while True:
try:
item = next(iteratorius)
except StopIteration:
break
else:
func(item)
Mūsų funkcija priima objektą (pvz. list'ą ar kt.) iš karto jį paverčia iteratoriumi. Tuomet, kol yra ką iteruoti, iteruoja ir praleidžia per mūsų funkciją argumentuose func. Pvz.:
broliai = ['jurgis', 'antanas', 'aloyzas', 'martynas']
iteruoklis(broliai, print)
# jurgis
# antanas
# aloyzas
# martynas
Šiuo atveju pritaikėme Python integruotą funkciją print, taigi mums bus paprasčiausiai atspausdinti brolių vardai. Galime panaudoti savo sukurtą funkciją, tarkime:
def kubu(x):
print(x**3)
nums = [1, 2, 3, 4, 5]
iteruoklis(nums, kubu)
# 1
# 8
# 27
# 64
# 125
© Donatas Noreika ir Jotautas Treigys
Dekoratoriai
Iteratoriai ir generatoriai
RegEx
Pillow
NumPy
Pandas
- Pandas I
- Užduotys I
- Atsakymai I
- Pandas II
- Užduotys II
- Atsakymai II
- Pandas III
- Užduotys III
- Atsakymai III
Seaborn
Mašininis mokymasis
- 1 Tiesinės regresijos modelis
- 1 Užduotis
- 1 Atsakymas
- 2 Modeliai - klasifikatoriai
- 2 Užduotis
- 2 Atsakymas
- 3 Modeliai praktikoje
- 3 Užduotis (atnaujinta), atsakymas
- 3 Užduotis
- 3 Atsakymas (kodas su komentarais)
Requests, JSON, API
Web Scraping (Beautiful Soup)
Duomenų bazės
- SQL 1
- Užduotys
- Atsakymai
- SQL 2
- Užduotys
- Atsakymai
- SQL 3
- Užduotys
- Atsakymai
- SQL 4
- Užduotis
- SQL per Python
- Užduotis
- ORM 1
- Užduotys
- ORM 2
- Užduotis
- Atsakymas
Flask
- Įžanga
- Užduotys
- I dalis
- Užduotis
- I dalies kodas (atsakymas)
- II dalis
- Užduotis
- Atsakymas (kodas)
- III dalis
- Užduotis
- Atsakymas
- IV dalis
- Užduotis
- Atsakymas
- Flask Many2one, CRUD
- Flask One2many, many2many CRUD
- Flask: REST API kūrimas
- Flask: API su One2many (kodas)
- Flask: vartotojai
- Flask: nuotraukos pridėjimas, admin puslapis, puslapiavimas
- Flask: password reset, error pages
- Flask: projekto sutvarkymas
- Flask diegimas į serverį
Django
- 1. Įžanga, Modeliai
- 2. Administratoriaus svetainė
- 3. Šablonai
- 4. Views
- 5. Puslapiavimas, Paieška, Nuotraukos
- 6. Autorizacija
- 7. Vartotojai II, HTML laukai
- 8. Registracija, Formos
- 9. Vartotojo profilis
- 10. Create, Update, Delete rodinių klasės
- 11. Vertimai
- Užduotis: Autoservisas
- Biblioteka: kodas iki 6-tos dalies
- Biblioteka: kodas nuo 6-tos dalies
- Django diegimas į serverį
- Django diegimas į serverį 2
Django REST
Odoo
- Kurso programa: projektų valdymas
- 1 pamoka
- 2 pamoka
- 3 pamoka
- 4 pamoka
- 5 pamoka
- 6 pamoka
- 7 pamoka
- 8 pamoka
- 9 pamoka
Linux