3D pole jsou pohodlná a výkonná datová struktura, která umožňuje ukládat a zpracovávat velké množství informací. Skládají se z prvků, z nichž každý má tři indexy: první pro přístup k prvkům hlavního pole, druhý k prvkům vnitřního pole a třetí k prvkům samotného vnitřního pole.
arr = [[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]for i in range(len(arr)):for j in range(len(arr[i])):for k in range(len(arr[i][j])):print(arr[i][j][k], end=' ')print()print()
Nyní víte, jak odvodit trojrozměrné pole Pythonu pomocí jednoduchého přístupu pomocí cyklů. Tato metoda může být užitečná v různých situacích, kdy je vyžadováno zpracování a zobrazení složitých datových struktur. Nebojte se experimentovat s různými velikostmi polí a tento přístup uplatněte ve svých projektech!
Jak vyvedu trojrozměrné pole Pythonu?
Jedním z jednoduchých způsobů je použití vnořených cyklů k obcházení každého prvku trojrozměrného pole. Zde je příklad kódu:
arr = [[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]for i in range(len(arr)):for j in range(len(arr[i])):for k in range(len(arr[i][j])):print(arr[i][j][k], end=' ')print()print()
Dalším způsobem je použití funkce numpy, která poskytuje pohodlnější metody pro práci s vícerozměrnými poli. Zde je příklad kódu, který používá knihovnu numpy:
import numpy as nparr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])print(arr)
Jednoduchý způsob s příklady
Příklad 1:
array = [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]for i in array:for j in i:print(j)
V tomto příkladu prochází první cyklus vnějšími poli a druhý cyklus prochází vnitřními poli. V důsledku toho bude každý prvek vnitřního pole vyveden na samostatný řádek.
Příklad 2:
array = [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]for i in array:for j in i:for k in j:print(k)
V tomto příkladu je přidán další cyklus procházející vnitřním polem. Každý prvek trojrozměrného pole tak bude vyveden na samostatný řádek.
Příklad 3:
array = [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]for i in array:print(i)
V tomto příkladu bude vyvedeno každé vnější pole na samostatném řádku.
Krok 1: vytvoření trojrozměrného pole
Prvním způsobem je použití podsložek. Chcete-li vytvořit 3D pole, musíte vytvořit seznam, který bude obsahovat více seznamů, které ihrer zase budou obsahovat další seznamy. Počet vnořených seznamů a jejich prvků je určen velikostí trojrozměrného pole:
array_3d = [[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]
V tomto příkladu je vytvořeno 3D pole o rozměrech 2x2x3. Způsob, jak vytvořit 3D pole pomocí vnořených seznamů, je nejjednodušší a nejpohodlnější. Existují však i jiné způsoby, které umožňují flexibilnější práci s trojrozměrnými poli.
Příklad kódu pro vytvoření trojrozměrného pole v Pythonu
K vytvoření trojrozměrného pole v Pythonu lze použít modul numpy.
import numpy as np# Задаем размеры массиваrows = 3cols = 4depth = 2# Создаем трехмерный массив с помощью функции np.zerosarr = np.zeros((rows, cols, depth), dtype=int)# Заполняем массив значениямиfor i in range(rows):for j in range(cols):for k in range(depth):arr[i, j, k] = i + j + kprint(arr)
Krok 2: Použití vnořených cyklů
array = [[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]for i in array:for j in i:for k in j:print(k, end=' ')print()print()
Výsledek provádění kódu:
1 2 34 5 67 8 910 11 12
Příklad kódu a vysvětlení použití vnořených cyklů pro přístup k prvkům trojrozměrného pole
Příklad kódu:
array = [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]# Вложенные циклы для доступа к элементам трехмерного массиваfor i in range(len(array)):for j in range(len(array[i])):for k in range(len(array[i][j])):print(array[i][j][k], end=' ')print()print()
Vysvětlení použití vnořených cyklů:
V tomto příkladu máme trojrozměrné pole obsahující dvě dvourozměrná pole. Chceme projít každý prvek trojrozměrného pole a přenést jeho hodnotu na obrazovku.
Externí cyklus for I in range(len (array)) umožňuje procházet každý prvek vnějšího pole. Proměnná i bude obsahovat index aktuálního prvku vnějšího pole.
Ve druhém cyklu for j in range (len (array[i])) procházíme každý prvek vnitřního pole, který je prvkem vnějšího pole umístěného v pozici i . Proměnná j bude obsahovat index aktuálního prvku vnitřního pole.
Ve třetím cyklu for K in range (len (array[i][j])) procházíme každý prvek vnitřního pole, který je prvkem vnitřního pole umístěného v pozici j . Proměnná k bude obsahovat index aktuálního prvku vnitřního pole.
Vnější cyklus pak přejde na další prvek vnějšího pole a všechny výše popsané kroky se opakují pro každý prvek trojrozměrného pole.
V důsledku provedení tohoto kódu bude na obrazovce zobrazen následující výsledek:
1 23 45 67 8