Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Sisäkkäiset Silmukat | Silmukat
Practice
Projects
Quizzes & Challenges
Visat
Challenges
/
Johdatus Pythoniin

bookSisäkkäiset Silmukat

Sisäkkäiset silmukat laajentavat yksinkertaisten silmukoiden mahdollisuuksia sallimalla toistuvien toimintojen suorittamisen useissa ulottuvuuksissa. Tämä on olennaista monimutkaisempien tehtävien käsittelyssä päivittäistavarakaupassa, kuten monitasoisen varastodatan järjestämisessä tai aikataulujen yhteensovittamisessa eri osastojen välillä.

Katso, kuinka Alex havainnollistaa sisäkkäisten silmukoiden hyödyntämistä tehokkuuden parantamiseksi ja monimutkaisten tilanteiden hallitsemiseksi päivittäistavarakaupan ympäristössä:

Tässä on sisäkkäisen for-silmukan perusrakenne Pythonissa:

for outer_var in outer_sequence:
    for inner_var in inner_sequence:
        # Code to run for each combination

Tämä tarkoittaa, että jokaiselle ulomman sekvenssin arvolle sisempi silmukka käy läpi koko oman sekvenssinsä.

Sisäkkäiset silmukat ovat erittäin hyödyllisiä ohjelmoinnissa, kun täytyy käydä läpi useita sekvenssejä samanaikaisesti. Sijoittamalla yksi silmukka toisen sisään voidaan käydä läpi alkioita kahdessa tai useammassa ulottuvuudessa, kuten listojen listassa:

123456789
# Simple list of lists: each sublist is a department items = [ ["Apple", "Banana"], # Fruits ["Milk", "Cheese"] # Dairy ] for department in items: for item in department: print(item)
copy

Ulkoinen silmukka käy läpi jokaisen alilistan department_stocks-listassa, jossa jokainen alilista edustaa osastoa. Sisäinen silmukka tulostaa jokaisen tuotteen nykyisestä alilistasta. Ulkoinen silmukka siirtyy seuraavaan osastoon vasta, kun kaikki nykyisen alilistan tuotteet on tulostettu.

Entä jos et käyttäisi sisäkkäistä silmukkaa

Jos yrität tulostaa jokaisen tuotteen lista listoista -rakenteesta ilman sisäkkäistä silmukkaa, saatat vahingossa tulostaa alilistat itsessään, etkä niiden sisältämiä tuotteita. Tässä on esimerkki koodista, jossa käytetään vain yhtä silmukkaa:

items = [
    ["Apple", "Banana"],  # Fruits
    ["Milk", "Cheese"]    # Dairy
]

for department in items:
    print(department)

Tämä koodi tulostaa:

['Apple', 'Banana']
['Milk', 'Cheese']

Yksittäisten elintarvikkeiden sijaan saat koko alilistan (osaston) yhdelle riville.

Note
Huomautus

Ilman sisäkkäistä silmukkaa et voi suoraan käsitellä sisäisten listojen jokaista alkiota. Sisäkkäiset silmukat ovat välttämättömiä, kun täytyy käsitellä usean tason tietorakenteen alkioita.

123456789
# List of lists representing grocery sections items = [ ["Apple", "Banana"], # Fruits ["Milk", "Cheese"] # Dairy ] # Non-nested loop: prints each sublist as a whole for section in items: print(section)
copy
Tehtävä

Swipe to start coding

Sinulla on kaksi elintarvikelistaa: produce ja dairy.

Yhdistä ensin nämä kaksi listaa yhdeksi listaksi nimeltä groceries. Kumpikin lista (produce ja dairy) tulee olla omana alkionaan groceries-listassa.

Käytä sitten sisäkkäisiä for-silmukoita tulostaaksesi kaikkien tuotteiden nimet:

  • Ulkoinen silmukka käy läpi jokaisen listan groceries-listassa (kutsu sitä section).
  • Sisäinen silmukka käy läpi jokaisen tuotteen kyseisessä listassa.
  • Tulosta jokainen tuote omalle rivilleen seuraavassa muodossa: Item name: <item>

Ratkaisu

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 5. Luku 8
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

close

bookSisäkkäiset Silmukat

Pyyhkäise näyttääksesi valikon

Sisäkkäiset silmukat laajentavat yksinkertaisten silmukoiden mahdollisuuksia sallimalla toistuvien toimintojen suorittamisen useissa ulottuvuuksissa. Tämä on olennaista monimutkaisempien tehtävien käsittelyssä päivittäistavarakaupassa, kuten monitasoisen varastodatan järjestämisessä tai aikataulujen yhteensovittamisessa eri osastojen välillä.

Katso, kuinka Alex havainnollistaa sisäkkäisten silmukoiden hyödyntämistä tehokkuuden parantamiseksi ja monimutkaisten tilanteiden hallitsemiseksi päivittäistavarakaupan ympäristössä:

Tässä on sisäkkäisen for-silmukan perusrakenne Pythonissa:

for outer_var in outer_sequence:
    for inner_var in inner_sequence:
        # Code to run for each combination

Tämä tarkoittaa, että jokaiselle ulomman sekvenssin arvolle sisempi silmukka käy läpi koko oman sekvenssinsä.

Sisäkkäiset silmukat ovat erittäin hyödyllisiä ohjelmoinnissa, kun täytyy käydä läpi useita sekvenssejä samanaikaisesti. Sijoittamalla yksi silmukka toisen sisään voidaan käydä läpi alkioita kahdessa tai useammassa ulottuvuudessa, kuten listojen listassa:

123456789
# Simple list of lists: each sublist is a department items = [ ["Apple", "Banana"], # Fruits ["Milk", "Cheese"] # Dairy ] for department in items: for item in department: print(item)
copy

Ulkoinen silmukka käy läpi jokaisen alilistan department_stocks-listassa, jossa jokainen alilista edustaa osastoa. Sisäinen silmukka tulostaa jokaisen tuotteen nykyisestä alilistasta. Ulkoinen silmukka siirtyy seuraavaan osastoon vasta, kun kaikki nykyisen alilistan tuotteet on tulostettu.

Entä jos et käyttäisi sisäkkäistä silmukkaa

Jos yrität tulostaa jokaisen tuotteen lista listoista -rakenteesta ilman sisäkkäistä silmukkaa, saatat vahingossa tulostaa alilistat itsessään, etkä niiden sisältämiä tuotteita. Tässä on esimerkki koodista, jossa käytetään vain yhtä silmukkaa:

items = [
    ["Apple", "Banana"],  # Fruits
    ["Milk", "Cheese"]    # Dairy
]

for department in items:
    print(department)

Tämä koodi tulostaa:

['Apple', 'Banana']
['Milk', 'Cheese']

Yksittäisten elintarvikkeiden sijaan saat koko alilistan (osaston) yhdelle riville.

Note
Huomautus

Ilman sisäkkäistä silmukkaa et voi suoraan käsitellä sisäisten listojen jokaista alkiota. Sisäkkäiset silmukat ovat välttämättömiä, kun täytyy käsitellä usean tason tietorakenteen alkioita.

123456789
# List of lists representing grocery sections items = [ ["Apple", "Banana"], # Fruits ["Milk", "Cheese"] # Dairy ] # Non-nested loop: prints each sublist as a whole for section in items: print(section)
copy
Tehtävä

Swipe to start coding

Sinulla on kaksi elintarvikelistaa: produce ja dairy.

Yhdistä ensin nämä kaksi listaa yhdeksi listaksi nimeltä groceries. Kumpikin lista (produce ja dairy) tulee olla omana alkionaan groceries-listassa.

Käytä sitten sisäkkäisiä for-silmukoita tulostaaksesi kaikkien tuotteiden nimet:

  • Ulkoinen silmukka käy läpi jokaisen listan groceries-listassa (kutsu sitä section).
  • Sisäinen silmukka käy läpi jokaisen tuotteen kyseisessä listassa.
  • Tulosta jokainen tuote omalle rivilleen seuraavassa muodossa: Item name: <item>

Ratkaisu

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 5. Luku 8
single

single

some-alt