UWAGA konkurs!
Mistrz Programowania
Serwis algorytm.edu.pl zaprasza na kompleksowe zajęcia przygotowujące do matury z informatyki (nowa podstawa programowa) oraz dla uczniów szkół podstawowych do zajęć przygotowujących do Olimpiady Informatycznej Juniorów.
więcej informacji pod adresem szkola-fraktal.pl
Wyobraź sobie, że musisz na maturze wczytać macierz dwuwymiarową, tzn. musisz wczytać n wierszy, a w każdym wierszu znajduje się po m liczb (lub innych elementów). Aby w języku Python przechować dane tego typu, możesz użyć listy, której elementy są także listy (tzw. zagnieżdżanie list). Na początek postaramy się wczytać i wypisać w tej samej postaci takie dane:
4 3
1 2 3
1 2 3
5 5 5
6 6 6
Pierwsze dwie liczby 4 i 3 mówią nam o rozmiarze macierzy, czyli w kolejnych 4 wierszach wystąpią po trzy liczby.
lista = [] # tu będziemy przechowywać macierz
liczby = input().split() # wczytujemy wiersz z danymi i rzutujemy je na listę
n = int(liczby[0]) # wyłuskujemy te dane i zamieniamy je na liczbę
m = int(liczby[1]) # w zasadzie ta zmienna jest niepotrzebna
for i in range(n):
lista.append(input().split()) # wczytaj wiersz z danymi i rozdziel je jako oddzielne elementy
for i in range(n):
print(" ".join(lista[i])) # wypisz kolejne wiersze z liczbami, wstawiając między nimi znak spacji
Aby odwołać się do całego wiersza, wystarczy w nawiasie kwadratowym podać jego numer, pamiętając, że indeksujemy od zera:
lista = [] # tu będziemy przechowywać macierz
n = int(input("Podaj liczbę wierszy: "))
for i in range(n):
lista.append(input("Wczytaj wiersz nr "+str(i)+": ").split()) # wczytaj wiersz z liczbami rozdziel je jako oddzielne elementy
i = int(input("Podaj numer wiersza, który chcesz wypisać: "))
print(lista[i]) # lub
print(" ".join(lista[i]))
Podaj liczbę wierszy: 3
Wczytaj wiersz nr 0: 1 2 3
Wczytaj wiersz nr 1: 11 22 33
Wczytaj wiersz nr 2: 111 222 333
Podaj numer wiersza, któy chcesz wypisać: 1
['11', '22', '33']
11 22 33
Aby odwołać się do poszczególnego elementu, należy podać w pierwszym nawiasie kwadratowym numer wiersza, a w drugim numer elementu w tym wierszu (elementy także numerujemy od zera):
lista = [] # tu będziemy przechowywać macierz
n = int(input("Podaj liczbę wierszy: "))
for i in range(n):
lista.append(input("Wczytaj wiersz nr "+str(i)+": ").split()) # wczytaj wiersz z liczbami rozdziel je jako oddzielne elementy
i = int(input("Podaj numer wiersza: "))
j = int(input("Podaj numer elementu w tym wierszu: "))
print(lista[i][j])
Podaj liczbę wierszy: 3
Wczytaj wiersz nr 0: 1 2 3
Wczytaj wiersz nr 1: 4 5 6
Wczytaj wiersz nr 2: 7 8 9
Podaj numer wiersza: 2
Podaj numer elementu w tym wierszu: 2
9
Tablicę trójwymiarową stworzysz, zagnieżdżając jeszcze bardziej listę. Opierając się na powyższym przykładzie, należy każdy element wiersza wczytać jako kolejną listę. Do takiego elementu odwołać można się za pomocą trzech nawiasów kwadratowych: lista[nr_wiersza][nr_kolumny][wysokość].