Gabay sa Pag-uulit sa Python: Mula sa For Loops hanggang itertools

目次

1. Panimula

Ang pag-uulit sa Python ay mahalagang sangkap para mapabuti ang kahusayan at nababasa ng programa. Karamihan sa mga wika ng programming ay may estruktura ng loop na tinatawag na foreach, na nagpapahintulot ng madaling pag-uulit sa bawat elemento ng isang sunud-sunod, ngunit ang Python ay walang direktang foreach loop. Kaya, gumagamit ang Python ng iba’t ibang tampok tulad ng for loops, enumerate, at zip upang makamit ang katulad na pagproseso. Ipinapaliwanag ng artikulong ito kung paano magsagawa ng pag-uulit sa Python na katumbas ng foreach, mula sa isang simple at praktikal na pananaw.

Bakit wala ang foreach sa Python?

Hindi hayagang tinatanggap ng Python ang foreach dahil binibigyang-diin ng disenyo ng wika ang kasimplihan at kakayahang umangkop. Ang mga for loop at comprehensions ay dinisenyo upang gawing madali ang maraming gawain ng pag-uulit. Nagbibigay ang Python ng matibay na mga tampok para sa pag-ikot sa mga indeks at maramihang sunud-sunod nang sabay-sabay, kaya kahit walang foreach, posible pa rin ang katulad na mga pahayag.

Mga Benepisyo ng Pag-uulit sa Python

Ang pag-uulit sa Python ay nag-aalok ng mga sumusunod na benepisyo.

  • Kahusayan : Ang code ay maaaring isulat nang mas maikli kumpara sa ibang wika, na nagreresulta sa mas mataas na nababasa.
  • Kakayahang umangkop : Posibleng magkaroon ng pare-parehong pag-uulit sa maraming sunud-sunod at iba’t ibang estruktura ng datos.
  • Comprehensions : Maaaring madaling lumikha ng listahan, diksyunaryo, at iba pang koleksyon, na nagpapadali sa pagsulat ng epektibong code.

Sa susunod na kabanata, titingnan natin nang detalyado ang pangunahing paggamit ng for loop bilang pundamental na aspeto ng pag-uulit sa Python.

2. Mga Batayan ng for loop sa Python

Ang for loop, isang pangunahing tampok ng pag-uulit sa Python, ay madalas gamitin upang iproseso ang bawat elemento ng isang sunud-sunod. Narito ang detalyadong paliwanag tungkol sa pangunahing paggamit ng for loop para sa mga sunud-sunod tulad ng listahan at tuple.

Pangunahing sintaks ng for loop

Isinusulat ang Python for loop gamit ang sumusunod na sintaks:

for element in sequence:
    process
  • Elemento : Ang variable na tumatanggap ng bawat item ng sunud-sunod nang sunod-sunod sa bawat pag-ikot.
  • Sunud-sunod : Isang iterable na estruktura ng datos tulad ng listahan, tuple, o string.

Halimbawa 1: Pag-ikot sa isang listahan

Una, tingnan natin ang isang simpleng halimbawa ng for loop gamit ang isang listahan.

fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

Sa code sa itaas, ang bawat elemento ng listahang fruits ay inilalaan nang sunod-sunod sa fruit, at isinasagawa ang print(fruit). Ang halimbawang ito ay nagbubunga ng sumusunod na output.

apple
banana
cherry

Halimbawa 2: Pag-ikot sa isang string

Ang mga string ay mga sunud-sunod din, kaya maaari mong i-ikot ang bawat karakter.

text = "hello"
for char in text:
    print(char)

Sa code na ito, ang bawat karakter ng string na text ay inilalaan nang sunod-sunod sa char at ini-print. Ang resulta ay ganito.

h
e
l
l
o

Halimbawa 3: Pag-ikot sa isang tinukoy na saklaw (function na range)

Kung nais mong mag-ikot sa isang tinukoy na saklaw ng mga numero, gamitin ang function na range().

for i in range(5):
    print(i)

Ang code na ito ay naglalaan ng mga halagang 0 hanggang 4 nang sunod-sunod sa i at ini-print ang mga ito.

0
1
2
3
4

Paano gamitin ang function na range

  • range(n) : Lumikha ng mga numero mula 0 hanggang n-1.
  • range(start, stop) : Lumikha ng mga numero mula start hanggang stop-1.
  • range(start, stop, step) : Lumikha ng mga numero mula start hanggang stop-1 na may hakbang na step.

Praktikal na mga halimbawa ng for loop

Pagkalkula ng kabuuan ng isang array

Narito ang isang halimbawa ang for loop upang kalkulahin ang kabuuan ng mga numero sa isang listahan.

numbers = [1, 2, 3, 4, 5]
total = 0
for number in numbers:
    total += number
print("Total:", total)

Sa code na ito, ang mga numero sa listahan ay idinadagdag sa total nang sunod-sunod, at ini-print ang huling kabuuan.

Kondisyonal na pagproseso ng mga elemento

Maaari mo ring magtakda ng mga kondisyon sa loob ng for loop upang iproseso ang mga elemento batay sa ilang mga kondisyon.

numbers = [1, 2, 3, 4, 5, 6]
for number in numbers:
    if number % 2 == 0:
        print(number, "is even")
    else:
        print(number, "is odd")

Tinutukoy ng code na ito kung ang bawat numero ay pares o hindi, at ipinapakita ang resulta.

Naka-nest na mga for loop (nested na istruktura)

Maaaring i-nest ang mga for loop, na kapaki-pakinabang kapag nagpoproseso ng maramihang listahan o dalawang-dimensyon na mga listahan.

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
for row in matrix:
    for item in row:
        print(item, end=" ")
    print()  # newline

Ipinapakita ng code na ito ang lahat ng elemento ng isang dalawang-dimensyon na listahan (listahan ng mga listahan).

1 2 3
4 5 6
7 8 9

Buod

Ang for loop ng Python ay isang pangunahing istruktura para sa epektibong pag-ikot sa mga sekwensya tulad ng mga listahan, tuple, at string. Sa pamamagitan ng pagsasama ng function na range() sa mga kondisyon at nesting, maaari mong isakatuparan ang iba’t ibang proseso nang simple. Ang pag-unawa sa batayang istrukturang ito ay nagbibigay-daan sa iyo na magsagawa ng flexible na pag-ikot na katulad ng foreach.

3. Paggamit ng function na enumerate

Kapag nag-iikot sa isang sekwensya sa Python, may mga pagkakataon na nais mong makuha nang sabay ang index ng listahan at ang elemento. Sa mga ganitong kaso, ang paggamit ng function na enumerate ay nagbibigay-daan upang epektibong makuha ang index at elemento habang nag-loop. Dito, ipapaliwanag namin nang detalyado ang pangunahing paggamit at mga praktikal na halimbawa ng function na enumerate.

Pangunahing sintaks ng function na enumerate

Sa paggamit ng function na enumerate, ang bawat elemento sa sekwensya ay binibigyan ng isang index, na lumilikha ng mga pares ng index at elemento. Ginagamit ito sa sumusunod na sintaks.

for index, element in enumerate(sequence):
    process
  • Index : ang numerong index na tumutugma sa bawat elemento sa sekwensya.
  • Element : bawat elemento sa sekwensya.
  • Sequence : isang iterable na estruktura ng datos tulad ng listahan, tuple, o string.

Halimbawa 1: Pagkuha ng mga index at elemento ng listahan nang sabay

Isang halimbawa na nagpoproseso ng listahan sa pamamagitan ng pagkuha ng mga index at elemento nito nang sabay gamit ang enumerate.

fruits = ["apple", "banana", "cherry"]
for index, fruit in enumerate(fruits):
    print(f"{index}: {fruit}")

Ipinapakita ng code na ito ang bawat elemento sa listahang fruits kasama ang kanyang index.

0: apple
1: banana
2: cherry

Halimbawa 2: Pagtatakda ng panimulang index

May opsyon ang function na enumerate upang tukuyin ang panimulang index. Sa default, nagsisimula ang mga index sa 0, ngunit maaari mong itakda ang anumang halaga bilang panimulang index.

fruits = ["apple", "banana", "cherry"]
for index, fruit in enumerate(fruits, start=1):
    print(f"{index}: {fruit}")

Ipinapakita ng code na ito ang mga index na nagsisimula sa 1.

1: apple
2: banana
3: cherry

Praktikal na mga halimbawa ng function na enumerate

Pagpapakita ng progreso ng listahan ng mga gawain

Ang function na enumerate ay maaari ring maging kapaki-pakinabang kapag ang mga index ay kailangan, tulad sa pamamahala ng mga gawain. Ipinapakita ng halimbawa sa ibaba ang progreso ng bawat gawain sa format na listahan.

tasks = ["Laundry", "Cleaning", "Cooking"]
for index, task in enumerate(tasks, start=1):
    print(f"Task{index}: {task} - Completed")

Ipinapakita ng code na ito ang bawat gawain sa listahan ng mga gawain kasama ang isang numero.

Task1: Laundry - Completed
Task2: Cleaning - Completed
Task3: Cooking - Completed

Pagpoproseso batay sa tiyak na kondisyon sa loob ng isang array

Kapag nais mong iproseso ang mga elemento sa tiyak na posisyon sa isang array gamit ang kanilang mga index, kapaki-pakinabang din ang enumerate.

numbers = [10, 20, 30, 40, 50]
for index, number in enumerate(numbers):
    if index % 2 == 0:
        print(f"Element {number} at index {index} has an even index")

Ipinapakita ng code na ito ang mga elemento na nasa mga pares na index.

Element 10 at index 0 has an even index
Element 30 at index 2 has an even index
Element 50 at index 4 has an even index

Buod

Ang function na enumerate ay lubhang kapaki-pakinabang para sa pagkuha ng mga index at mga elemento nang sabay-sabay. Dahil maaari kang magtukoy ng start index, ito ay angkop para sa pag-number ng mga list at pagproseso batay sa mga tiyak na kondisyon. Sa partikular, ito ay nagpapadali sa pagtatrabaho ng bawat elemento sa isang list, na nagpapabuti sa pagbasa at pag-maintain ng code.

4. Simultaneous na Pag-iterate ng Maraming Sequences gamit ang zip Function

Gamit ang zip function ng Python, maaari kang mag-iterate sa maraming sequences nang sabay-sabay. Ang tampok na ito ay napakakapaki-pakinabang kapag nais mong i-proseso ang mga list, tuples, o iba pang sequences nang magkasabay. Dito kami magpapakilala ng basic na paggamit at practical na mga halimbawa ng zip function.

Basic na Syntax ng zip Function

Ang zip function ay tumatanggap ng maraming sequences bilang arguments, nagru-group ng kanilang mga elemento sa mga tuples, at gumagawa ng isang iterable object. Gamitin ang zip function sa sumusunod na syntax.

for element1, element2, ... in zip(sequence1, sequence2, ...):
    process
  • element1, element2… : Isang elemento mula sa bawat sequence ay nagru-group sa isang tuple at iniuugnay sa mga variables sa pagkakasunod-sunod.
  • sequence1, sequence2… : Tukuyin ang mga sequences na nais mong i-proseso nang magkasama, tulad ng lists o tuples.

Halimbawa 1: Pag-iterate sa Dalawang Lists Nang Sabay-Sabay

Ang halimbawa na ito ay nag-i-iterate sa dalawang lists nang sabay-sabay gamit ang zip function at nagpri-print ng pinagsamang mga elemento mula sa bawat list.

names = ["Alice", "Bob", "Charlie"]
scores = [85, 92, 78]
for name, score in zip(names, scores):
    print(f"{name}'s score is {score}")

Ang code na ito ay nag-i-iterate sa names list at scores list nang sabay-sabay, na nag-o-output ng names at scores.

Alice's score is 85
Bob's score is 92
Charlie's score is 78

Halimbawa 2: Pag-iterate sa Tatlo o Higit Pang Lists Nang Sabay-Sabay

Ang zip function ay sumusuporta rin sa tatlo o higit pang sequences, kaya maaari mong i-proseso ang maraming lists o tuples nang sabay-sabay.

names = ["Alice", "Bob", "Charlie"]
scores = [85, 92, 78]
grades = ["B", "A", "C"]
for name, score, grade in zip(names, scores, grades):
    print(f"{name}'s score is {score}, and the grade is {grade}")

Ang code na ito ay nag-o-output ng names, scores, at grades nang magkasama.

Alice's score is 85, and the grade is B
Bob's score is 92, and the grade is A
Charlie's score is 78, and the grade is C

Pag-uugali ng zip Function Kapag ang Sequences ay May Iba’t Ibang Haba

Kapag gumagamit ng zip function, kung ang sequences ay may iba’t ibang haba, ang iteration ay tumitigil sa haba ng pinakamaikling sequence. Tingnan natin ito sa halimbawa sa ibaba.

names = ["Alice", "Bob"]
scores = [85, 92, 78]  # 3 elements
for name, score in zip(names, scores):
    print(f"{name}'s score is {score}")

Sa kasong ito, dahil ang names ay may dalawang elemento lamang, ang ikatlong elemento ay hindi isinama at ang output ay magiging tulad ng sumusunod.

Alice's score is 85
Bob's score is 92

Practical na Mga Halimbawa ng zip Function

Pagpapakita ng Mga Elemento ng List Bilang Mga Pair

Gamit ang zip function, maaari mo ring i-pair ang magkakahabang mga elemento sa loob ng isang list para sa pagproseso.

data = [10, 20, 30, 40]
for x, y in zip(data, data[1:]):
    print(f"Pair: ({x}, {y})")

Ang code na ito ay nagpe-pair ng magkakahabang mga elemento at nagpri-print ng kanila.

Pair: (10, 20)
Pair: (20, 30)
Pair: (30, 40)

Buod

Ang zip function ay isang makapangyarihang tool para sa pag-iterate sa maraming sequences nang sabay-sabay. Ito ay tumutulong sa mga gawain tulad ng pagpe-pair o pag-combine ng iba’t ibang piraso ng data at nagbibigay-daan sa iyo na magsulat ng maikling code. Kapag nagtatrabaho sa mga sequences ng iba’t ibang haba, ang paggamit ng zip_longest kung kinakailangan ay nagbibigay ng flexible na iteration.

5. List Comprehensions (List Comprehension)

Ang Python ay naglalaman ng isang makapangyarihang technique na tinatawag na “list comprehension” para sa madaling pagbuo ng sequences. Sa pamamagitan ng paggamit ng list comprehensions, ang pagbuo ng lists gamit ang tradisyunal na for loop ay naging mas maikli at madaling basahin. Ang kabanatang ito ay nagpapaliwanag ng basic na paggamit ng list comprehensions, kasama ang tunay na mga code examples, upang ilarawan ang kanilang kaginhawahan.

Pangunahing Sintaks ng List Comprehensions

Ang mga list comprehension ay sinusulat gamit ang sumusunod na sintaks.

[expression for element in sequence]
  • Expression : Ang operasyon na inilalapat sa bawat elemento.
  • Element : Ang variable na tumatanggap ng bawat item mula sa pagkakasunod-sunod.
  • Sequence : Isang iterable na estruktura ng datos tulad ng list, tuple, o string.

Halimbawa 1: Pangunahing List Comprehension

Halimbawa, upang lumikha ng bagong list sa pamamagitan ng pagdoble ng bawat elemento sa isang list, ang tradisyunal na for loop ay isusulat tulad ng sumusunod.

numbers = [1, 2, 3, 4, 5]
doubled = []
for number in numbers:
    doubled.append(number * 2)
print(doubled)

Gamit ang list comprehension, ang nasa itaas na code ay maaaring isulat nang maikli tulad sumusunod.

numbers = [1, 2, 3, 4, 5]
doubled = [number * 2 for number in numbers]
print(doubled)

Ang output ay ganito.

[2, 4, 6, 8, 10]

Kondisyonal na List Comprehensions

Sa list comprehensions, maaari kang magdagdag ng kondisyonal na ekspresyon upang iproseso lamang ang tiyak na mga elemento. Ang kondisyon sinusulat bilang for na sinusundan ng if.

Halimbawa 2: Kondisyonal na List Comprehension

Halimbawa, upang doblehin lamang ang mga even na numero sa isang list, isusulat mo ito:

numbers = [1, 2, 3, 4, 5]
doubled_even = [number * 2 for number in numbers if number % 2 == 0]
print(doubled_even)

Ang code na ito ay kumukuha lamang ng mga even na numero at lumilikha ng bagong list na doble ang mga ito.

[4, 8]

Halimbawa 3: Kondisyonal na List Comprehension Gamit ang else

Kung nais mong mag-apply ng ibang pagproseso sa bawat elemento gamit ang kondisyonal na sangay, maaari kang magdagdag ng else bago ang if.

numbers = [1, 2, 3, 4, 5]
result = [number * 2 if number % 2 == 0 else number for number in numbers]
print(result)

Ang code na ito ay nagdodoble ng numero kapag ito ay even, at kung hindi, idinadagdag ang orihinal na numero sa list.

[1, 4, 3, 8, 5]

Buod

Sa pamamagitan ng paggamit ng list comprehensions, maaari kang lumikha ng mga list nang mas maikli at mas epektibo kumpara sa mga for loop. Ang pagsasama ng simpleng kondisyonal na pagproseso at tiyak na mga operasyon ay nagpapahintulot na magsulat ng mas Pythonic na code. Gayunpaman, ang komplikadong comprehensions ay maaaring magpababa ng nababasa, kaya mahalagang gamitin ito sa tamang sitwasyon.

6. Pag-ikot sa mga Dictionary

Ang isang dictionary (dict) ay isa sa mga pangunahing estruktura ng datos sa Python, ginagamit upang mag-imbak ng mga key‑value na pares. Katulad ng mga list at tuple, maaaring i-iterate ang mga dictionary, ngunit sa mga dictionary madalas mong kunin ang mga susi, mga halaga, o pareho. Ang kabanatang ito ay naglalarawan kung paano i-iterate ang mga dictionary at mga kapaki-pakinabang na function nang detalyado.

Pangunahing Pag-ikot sa Dictionary

Sa pangunahing pag-ikot ng dictionary, gumagamit ka ng for loop upang makuha alinman sa mga susi, mga halaga, o mga key‑value na pares.

Halimbawa 1: Pag-ikot sa mga Susi Lamang

Kapag nag-iterate ka sa isang dictionary gamit ang for loop, ito ay nagbabalik lamang ng mga susi bilang default.

person = {"name": "Taro", "age": 30, "occupation": "Engineer"}
for key in person:
    print(key)

Ang code na ito ay nagpi-print ng lahat ng susi ng dictionary sa pagkakasunud-sunod.

name
age
occupation

Halimbawa 2: Pag-ikot sa mga Halaga Lamang

Upang mag-iterate sa mga halaga ng dictionary, gamitin ang method na values().

person = {"name": "Taro", "age": 30, "occupation": "Engineer"}
for value in person.values():
    print(value)

Ang code na ito ay nagpi-print ng lahat ng halaga ng dictionary sa pagkakasunud-sunod.

Taro
30
Engineer

Halimbawa 3: Pag-ikot sa mga Key‑Value na Pairs

Kung nais mong kunin ang parehong susi at halaga nang sabay, gamitin ang method na items(). Ibinabalik nito ang bawat pares bilang isang tuple, na maaaring i-unpack sa dalawang variable.

person = {"name": "Taro", "age": 30, "occupation": "Engineer"}
for key, value in person.items():
    print(f"{key}: {value}")

Ang code na ito ay nagpi-print ng lahat ng key‑value na pares.

name: Taro
age: 30
occupation: Engineer

Kondisyonal na Pag-ikot sa Dictionary

Kung nais mong kunin lamang ang mga pares na tumutugma sa isang tiyak na kondisyon sa loob ng dictionary, maaari mong tukuyin ang kondisyon gamit ang if statement.

Halimbawa 4: Paglabas Lamang ng mga Pairs na may Tiyak na Halaga

Halimbawa, upang ilabas lamang ang mga item kung saan ang edad ay 30 pataas, isusulat mo ito:

%%CODEBLOCK14%%

people = {"Taro": 30, "Hanako": 25, "Jiro": 35}
for name, age in people.items():
    if age >= 30:
        print(f"{name} is at least 30 years old")

Ang code na ito ay naglalabas lamang ng mga pares na tumutugma sa kondisyon.

Taro is at least 30 years old
Jiro is at least 30 years old

Dictionary Comprehensions

Katulad ng list comprehensions, posible rin ang dictionary comprehensions. Pinapayagan ka nitong lumikha ng bagong diksyonaryo batay sa isang kondisyon.

Halimbawa 5: Paglikha ng Bagong Diksyonaryo na may Kondisyon

Halimbawa, upang lumikha ng bagong diksyonaryo na naglalaman lamang ng mga taong may edad na 30 pataas, maaari mong isulat:

people = {"Taro": 30, "Hanako": 25, "Jiro": 35}
adults = {name: age for name, age in people.items() if age >= 30}
print(adults)

Ang output ng code na ito ay ang mga sumusunod.

{'Taro': 30, 'Jiro': 35}

Buod

Sa Python, maaari kang mag-iterate sa mga diksyonaryo sa pamamagitan ng pagkuha ng mga susi, halaga, o pares na susi‑halaga. Bukod pa rito, ang mga conditional dictionary comprehensions at paghawak ng nested na mga diksyonaryo ay nagbibigay-daan sa flexible na pagproseso ng data. Ang mga diksyonaryo ay napaka-kapaki-pakinabang na estruktura ng data para sa pag-aayos at pamamahala ng komplikadong data, at ang paggamit ng angkop na mga teknik sa pag-iterate ay nagpapahusay sa kanilang gamit.

7. Pag-iterate sa mga Set

Ang set (set) ay isang estruktura ng data na nag-iimbak ng mga natatanging elemento, kapaki-pakinabang para sa pagsuri kung ang isang partikular na elemento ay naroroon o para sa pagtanggal ng mga duplicate mula sa isang listahan. Dahil ang mga set sa Python ay walang pagkakasunud-sunod, hindi tulad ng mga list o tuple na maaari mong ma-access ang mga elemento sa pamamagitan ng index, ngunit maaari mong i-iterate ang lahat ng elemento gamit ang isang for loop. Sa kabanatang ito, tatalakayin natin ang mga batayan ng pag-iterate sa mga set, conditional iteration, at mga pamamaraan ng pag-iterate na may kasamang mga operasyon na partikular sa set.

Pangunahing Pag-iterate sa Set

Upang iproseso ang bawat elemento sa isang set, gumamit ng for loop. Dahil ang mga set ay walang order, maaaring mag-iba ang pagkakasunud-sunod ng pagproseso sa bawat pagkakataon.

Halimbawa 1: I-print Lahat ng Elemento ng Set

Una, tingnan natin ang isang simpleng halimbawa ng pag-iterate na nagpi-print ng bawat elemento sa isang set.

fruits = {"apple", "banana", "cherry"}
for fruit in fruits:
    print(fruit)

Ang pagkakasunud-sunod ng output ay hindi garantisado, ngunit bawat elemento ay lilitaw lamang isang beses.

banana
cherry
apple

Conditional Set Iteration

Maaari mo ring iproseso ang mga elemento ng set na tumutugma sa tiyak na mga kondisyon. Gumamit ng if statement upang i-filter batay sa isang kondisyon.

Halimbawa 2: I-print Lamang ang mga Elementong Tumutugma sa Kondisyon

Halimbawa, upang maglabas lamang ng mga string sa set na may habang hindi bababa sa limang karakter, isusulat mo:

fruits = {"apple", "banana", "cherry", "fig", "kiwi"}
for fruit in fruits:
    if len(fruit) >= 5:
        print(fruit)

Ang code na ito ay nagpi-print ng mga pangalan ng prutas na may limang o higit pang karakter.

banana
cherry
apple

Set Comprehensions

Katulad ng list comprehensions, mayroon ding set comprehensions. Ang paggamit ng set comprehension ay nagbibigay-daan sa iyo na lumikha ng bagong set nang maikli batay sa isang kondisyon.

Halimbawa 3: Lumikha ng Bagong Set na may Kondisyon

Halimbawa, upang lumikha ng bagong set na naglalaman lamang ng mga elemento na may limang o higit pang karakter, tulad ng sa nakaraang halimbawa, maaari mong isulat:

fruits = {"apple", "banana", "cherry", "fig", "kiwi"}
long_fruits = {fruit for fruit in fruits if len(fruit) >= 5}
print(long_fruits)

Ang output ay magmumukhang ganito (ang pagkakasunud-sunod ay hindi garantisado).

{'banana', 'cherry', 'apple'}

Buod

Ang mga set ay isang estruktura ng data na hindi pinapayagan ang mga duplicate at walang order, na nagbibigay sa kanila ng mga katangiang naiiba sa mga list o tuple. Ang mga ito ay partikular na angkop para sa paghawak ng natatanging data at para sa mga operasyon kasama ang ibang mga set upang mahanap ang mga intersection o pagkakaiba. Bukod pa rito, ang paggamit ng set comprehensions ay nagbibigay-daan sa maikli at epektibong pagproseso ng data.

8. Paggamit ng itertools Module

itertools module ay isang maginhawang toolkit na kasama sa standard library ng Python upang tumulong sa pag-ikot. Nagbibigay ito ng maraming function para sa mahusay na paghawak ng mga iterable na data structure, na lalo na kapaki-pakinabang kapag nagtatrabaho sa malaking dami ng data. Sa kabanatang ito, ipapaliwanag namin ang mga pangunahing function ng itertools module at kung paano gamitin ang mga ito.

Mga Pangunahing ng itertools Module

Nagbibigay ang itertools module ng iba’t ibang function upang mapabuti ang pag-ikot. Dito ay ipinakikilala namin ang mga kinatawang function at ipinaliwanag kung paano gamitin ang mga ito sa pamamagitan ng mga konkretong halimbawa.

1. count function

Ang count function ay isang iterator na gumagawa ng mga numero na patuloy na tumataas nang walang hanggan mula sa tinukoy na simulaang halaga. Kadalasang ginagamit ito para sa pagbuo ng sunud-sunod na numero kapag walang itinalagang pinakamataas na limitasyon.

from itertools import count

for i in count(10):
    if i > 15:
        break
    print(i)

Ang code na ito ay nagsisimula sa 10 at naglalabas ng mga integer na mas mababa sa 16.

10
11
12
13
14
15

2. cycle function

Ang cycle function ay lumilikha ng isang iterator na inuulit ang ibinigay na pagkakasunod-sunod nang walang hanggan. Kapaki-pakinabang ito kapag nais mong maglabas ng isang tiyak na pattern nang paulit-ulit.

from itertools import cycle

count = 0
for item in cycle(["A", "B", "C"]):
    if count == 6:
        break
    print(item)
    count += 1

Ang code na ito ay inuulit ang “A”, “B”, “C” at inilalabas ang mga ito ng kabuuang 6 na beses.

A
B
C
A
B
C

3. repeat function

Ang repeat function ay lumilikha ng isang iterator na inuulit ang tinukoy na elemento nang walang hanggan. Maaari mo ring tukuyin ang bilang ng pag-uulit gamit ang pangalawang argumento.

from itertools import repeat

for item in repeat("Python", 3):
    print(item)

Ang code na ito ay naglalabas ng “Python” ng tatlong beses.

Python
Python
Python

4. accumulate function

Ang accumulate function ay lumilikha ng isang iterator na nagkakalkula ng pinagsamang kabuuan ng isang ibinigay na pagkakasunod-sunod. Halimbawa, ito ay kapaki-pakinabang para sa sunud-sunod na pagdaragdag ng mga elemento ng listahan. Sa pamamagitan ng paggamit ng pasadyang function, maaari ka ring magsagawa ng iba pang kalkulasyon tulad ng mga produkto o pinakam halaga.

from itertools import accumulate

numbers = [1, 2, 3, 4, 5]
result = list(accumulate(numbers))
print(result)

Ang code na ito ay nagkakalkula ng pinagsamang kabuuan ng isang listahan at naglalabas ng mga sumusunod.

[1, 3, 6, 10, 15]

Buod

Nag-aalok ang itertools module ng napakaraming function para sa mahusay na pagpapatupad ng komplikadong pag-ikot. Lalo itong kapaki-pakinabang kapag kailangan mo ng walang katapusang pag-ikot o mga kombinasyon at permutasyon ng data, na tumutulong upang panatilihing maiksi ang code at pabilisin ang pagproseso. Sa pamamagitan ng mas flexible na paghawak ng pag-ikot, makakagawa ka ng Python code na humahawak ng malalaking dataset at komplikadong operasyon.

9. Buod

Nag-aalok ang Python ng iba’t ibang paraan upang pamahalaan ang pag-ikot, bawat isa ay may kani-kaniyang katangian at gamit. Sa kaban ng seryeng ito, natutunan natin ang iba’t ibang teknik upang gawing mas epektibo ang pag-ikot sa Python. Sa kabanatang ito, susuriin natin muli ang mga teknik na iyon upang makapili ka ng tamang opsyon para sa iyong mga layunin.

Mga Pangunahing Punto at Gamit ng Bawat Metodo

Narito ang isang maikling buod ng mga pangunahing punto at gamit ng bawat metodo.

1. for Loop

Punto: Ang pangunahing syntax ng pag-ikot sa Python. Simple at maraming gamit.
Gamit: Ginagamit kapag nagpoproseso ng mga sequence tulad ng list, tuple, o string.

2. enumerate Function

Punto: Isang function para makuha nang sabay ang index at ang elemento.
Gamit: Pag-ikot sa data kung saan mahalaga ang pagkakasunod-sunod o kapag kailangan ng index.

3. zip Function

Punto: Pinapayagan ang sabay-sabay na pag-ikot sa maraming sequence.
Gamit: Maginhawa para sa pagproseso ng mga katugmang elemento ng iba’t ibang listahan o tuple.

4. List Comprehension

Punto: Isang simple at epektibong paraan upang lumikha ng mga listahan. Posible rin ang conditional na pagproseso.
Gamit: Pagbuo at pagsasala ng mga listahan batay sa mga kondisyon o ekspresyon.

5. Dictionary Iteration

Punto: Maaaring kunin ang mga susi, halaga, o pares na susi-halaga.
Gamit: Ginagamit kapag humahawak ng data ng diksyunaryo at nagpoproseso batay sa mga susi at halaga.

6. Set Iteration

Punto: Kayang magproseso ng data na may natatanging (hindi duplicate) na mga elemento.
Gamit: Pagproseso ng natatanging data at pagsasagawa ng mga operasyon kasama ang iba pang mga set.

7. itertools Module

Punto: Nagbibigay-daan sa walang katapusang pag-ikot, kombinasyon ng maraming sekwensya, at pagbuo ng mga permutasyon at kombinasyon.
Gamit: Para sa komplikadong pag-ikot o kapag epektibong humahawak ng malaking dami ng data.

Mga Patnubay sa Pagpili ng Pinakamainam na Paraan

Sa pag-ikot, mahalagang piliin ang pinakamainam na pamamaraan batay sa layunin at estruktura ng data. Narito ang mga patnubay para sa pagpili ng angkop na teknik sa pag-ikot para sa bawat layunin.

  1. Simpleng listahan o tuple na pag-ikot : Ang pangunahing for loop ang pinaka-direkta at pinakasimple.
  2. Kapag kailangan ng index : Sa pamamagitan ng paggamit ng enumerate, maaari kang mag-loop habang sabay na nakukuha ang index at ang elemento.
  3. Kapag nagpoproseso ng maraming sekwensya nang sabay : Ang paggamit ng zip ay nagpapahintulot na epektibong magproseso ng maraming listahan o tuple nang magkasabay.
  4. Kondisyonal na pagbuo ng listahan : Ang paggamit ng list comprehensions ay nagbibigay-daan upang pumili ng mga elemento batay sa kondisyon at direktang iimbak ang mga nabilang na resulta sa isang listahan.
  5. Kapag kailangan ng espesyal na operasyon sa mga diksyunaryo o set : Sa pamamagitan ng paggamit ng items(), values() na mga pamamaraan, o set comprehensions na espesyal para sa mga diksyunaryo at set, madali mong mahahawakan ang mga susi at halaga o natatanging data.
  6. Kapag kailangan ng advanced na pag-ikot o pag-optimize : Ang paggamit ng itertools module ay nagbibigay-daan sa epektibong walang katapusang pag-ikot, kombinasyon ng maraming data set, at pagbuo ng mga espesyal na permutasyon at kombinasyon.

Konklusyon

Nagbibigay ang Python ng mayamang hanay ng mga tampok para sa epektibo at maikling pag-ikot. Sa pamamagitan ng paggamit ng iba’t ibang teknik—mula sa simpleng mga loop hanggang sa advanced na pag-ikot sa maraming sekwensya—maari mong lubos na mapabuti ang nababasa at kahusayan ng code. Ang wastong pag-aaplay ng mga pamamaraang ito ay ginagawang mas flexible at makapangyarihan ang pagprograma sa Python.
Sa hinaharap, sikapin na masterin ang bawat tampok ayon sa pangangailangan at patuloy na magsulat ng epektibong code.

侍エンジニア塾