0Pricing
Python Academy · Lekcja

Listy zagnieżdżone i iteracja

Proszę pracować z zagnieżdżonymi listami i wydajnie iterować po nich za pomocą pętli for.

Listy zagnieżdżone i iteracja to bezpłatna lekcja Python Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Python Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Python Academy zawiera 4 lekcji w sumie.

Wprowadzenie

Listy mogą zawierać inne listy, tworząc struktury wielowymiarowe. Opanowanie zagnieżdżonych iteracji jest kluczowe w pracy z siatkami i macierzami.

Struktura zagnieżdżonej listy

matrix = [[1,2,3],[4,5,6],[7,8,9]] to siatka 3x3. matrix[1][2] zapewnia dostęp do wiersza 1 i kolumny 2 — jest to wartość 6.
matrix = [[1,2,3],[4,5,6],[7,8,9]]
print(matrix[1][2])

Iterowanie po wierszach

for row in matrix: print(row) wyświetla każdą podlistę. row jest samo w sobie listą, w której można używać indeksów.
matrix = [[1,2],[3,4]]
for row in matrix:
    print(row)

Zagnieżdżone pętle for

for row in matrix: for val in row: print(val) wyświetla każdy pojedynczy element.
matrix = [[1,2],[3,4]]
for row in matrix:
    for val in row:
        print(val, end=' ')

Spłaszczanie zagnieżdżonej listy

[x for row in matrix for x in row] spłaszcza jeden poziom zagnieżdżenia. Jest to zagnieżdżone wyrażenie listowe.
matrix = [[1,2],[3,4]]
flat = [x for row in matrix for x in row]
print(flat)

Tworzenie siatki

Aby utworzyć siatkę N×M: grid = [[0]*M for _ in range(N)]. Należy użyć wyrażenia listowego, a NIE [[0]*M]*N, które tworzy aliasowane wiersze.
grid = [[0]*3 for _ in range(3)]
grid[0][0] = 1
print(grid)

Pułapka aliasowanych wierszy

grid = [[0]*3]*3 tworzy trzy odwołania do tego samego wiersza. Modyfikacja jednego modyfikuje wszystkie. Należy zawsze używać wyrażenia listowego.
bad = [[0]*3]*3
bad[0][0] = 9
print(bad)  # all rows changed!

zip() do równoległego iterowania

for a, b in zip(list1, list2) iteruje równolegle po dwóch listach. zip() kończy działanie na krótszej liście.
names = ['Alice', 'Bob']
scores = [90, 85]
for n, s in zip(names, scores):
    print(n, s)

enumerate() z zagnieżdżonymi listami

for i, row in enumerate(matrix): for j, val in enumerate(row): udostępnia zarówno indeksy, jak i wartości.
matrix = [[1,2],[3,4]]
for i, row in enumerate(matrix):
    for j, val in enumerate(row):
        print(f'[{i}][{j}]={val}')

Sortowanie listy list

sorted(data, key=lambda x: x[1]) sortuje dane według drugiego elementu każdej podlisty.
data = [['Bob',85],['Alice',90],['Charlie',78]]
data.sort(key=lambda x: x[1])
print(data)

Transponowanie macierzy

transposed = list(zip(*matrix)) transponuje wiersze na kolumny. Operator * rozpakowuje zewnętrzną listę jako argumenty funkcji zip.
matrix = [[1,2,3],[4,5,6]]
print(list(zip(*matrix)))

Szybkie sprawdzenie

Jaki jest prawidłowy sposób utworzenia wypełnionej zerami siatki 3x3, aby uniknąć pułapki aliasowanych wierszy?

Podsumowanie

Zagnieżdżone listy: dostęp uzyskuje się za pomocą [row][col], a iterowanie za pomocą zagnieżdżonych pętli for. Do tworzenia siatek należy używać wyrażeń listowych. zip() służy do równoległego iterowania, a zip(*matrix) do transponowania.

Kontynuuj

Świetnie! Proszę przejść do następnej lekcji, aby nadal rozwijać swoje umiejętności.

Często zadawane pytania

Czy lekcja „Listy zagnieżdżone i iteracja” jest bezpłatna?

Tak — pełny tekst „Listy zagnieżdżone i iteracja” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Python Academy, przejdź na CoddyKit PRO. Kurs Python Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Listy zagnieżdżone i iteracja”?

Proszę pracować z zagnieżdżonymi listami i wydajnie iterować po nich za pomocą pętli for. Ćwiczysz Python Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Python Academy?

Nie wymagamy żadnego doświadczenia. Python Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Listy zagnieżdżone i iteracja”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Python Academy?

Tak. Każda lekcja Python Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Tworzenie list i uzyskiwanie dostępu do ich elementów
  2. Modyfikowanie list
  3. Krotki i niezmienność
  4. Listy zagnieżdżone i iteracja
← Powrót do Python Academy