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ę |