Twoje Centrum Szkoleniowe

Nauczmy się dziś czegoś nowego!

Kurs programowania - Python

PYTHON Listy wielowymiarowe

 

Nazwisko Test 1 Test 2 Test 3
Kowalski 90 86 93
Nowak 76 64 78
Kwiatkowski 82 82 87

 

Lista dwuwymiarowa

Listę dwuwymiarową możemy sobie wyobrazić jak tabelkę czy krzyżówkę. Do tej pory element listy był liczbą, literą, czy tekstem. Lista dwuwymiarowa to nic innego, jak lista, która w danym elemencie mieści kolejną listę.

I tak przechodzimy do tabelki widocznej na górze. Mamy do czynienia z listą, która w każdy swoim elemencie zawiera dane konkretnego ucznia i jego wyników (wiersz). Każdy jej element zawiera w takim razie listę, na którą składają się nazwisko i wyniki z 3 testów.

 

Przejdźmy do kodu:

wyniki = [['Kowalski', 90, 86, 93],['Nowak', 76, 64, 78],['Kwiatkowski', 82, 82, 87]]
print(wyniki)

 

Efekt:

[['Kowalski', 90, 86, 93], ['Nowak', 76, 64, 78], ['Kwiatkowski', 82, 82, 87]]

 

Lista wyniki zawiera 3 elementy. Każdy z nich jest listą.

 

Aby wypisać pierwszy element:

print(wyniki[0][0])

 

Efekt: Kowalski.

Odnosząc się zatem do listy zagnieżdżonej podajemy indeksy, kolejno: elementu listy nadrzędnej, następnie elementu listy podrzędnej.

 

Przejdźmy do wypisania całej zawartości listy:

wyniki = [['Kowalski', 90, 86, 93],['Nowak', 76, 64, 78],['Kwiatkowski', 82, 82, 87]]
for uczniowie in wyniki :
    print(uczniowie)

 

W efekcie otrzymamy oczywiście 3 linie zawierające 3 listy z danymi uczniów i ich wynikami.

 

Spróbujmy wypisać każdy element osobno, jeden pod drugim:

for uczniowie in wyniki :
    for dane in uczniowie :
        print(dane)

 

Efekt:

Kowalski
90
86
93
Nowak
76
64
78
Kwiatkowski
82
82
87

 

Na koniec dodajmy jeszcze informację, kto uzyskał jaką średnią wyników z testu:

wyniki = [['Kowalski', 90, 86, 93],['Nowak', 76, 64, 78],['Kwiatkowski', 82, 82, 87]]
for uczniowie in wyniki :
    suma = 0
    for indeks_ocen in range(1, len(uczniowie)) :
        suma = suma + uczniowie[indeks_ocen]
    srednia = suma / 3
    print('Uczeń',uczniowie[0],'uzyskał następującą średnią z testów:',srednia)

 

Efekt:

Uczeń Kowalski uzyskał następującą średnią z testów: 89.66666666666667
Uczeń Nowak uzyskał następującą średnią z testów: 72.66666666666667
Uczeń Kwiatkowski uzyskał następującą średnią z testów: 83.66666666666667

 

Sposobem wyświetlenia średniej się na razie nie przejmujemy. Formatowanie ciągów znaków na jednej z kolejnych lekcji 🙂

Testy przypięte do lekcji
Aby uzyskać dostęp do testów i ćwiczeń interaktywnych - Zaloguj się
Aby widzieć ocenę lekcji - Zaloguj się