Sobes.tech
Junior

Aké sú rozdiely medzi poľami a zoznamami v Pythone?

sobes.tech AI

Odpoveď od AI

Zoznamy (list) v Pythone sú meniteľné (mutable) usporiadané kolekcie prvkov. Môžu obsahovať prvky rôznych typov dát. Sú bežne používané pre väčšinu úloh.

Polia v Pythone zvyčajne odkazujú na štruktúry z knižníc array alebo numpy.

array.array:

  • Určené na ukladanie prvkov rovnakého typu (čísla).
  • Sú úspornejšie na pamäť ako zoznamy, pretože ukladajú prvky kontinuálne.
  • Podporujú niektoré nízkoúrovňové operácie a transformácie (napr. do bajtov).
import array

# Vytvorenie poľa celých čísel
arr = array.array('i', [1, 2, 3, 4, 5])
print(arr) # array('i', [1, 2, 3, 4, 5])

# Pokus o pridanie prvku iného typu spôsobí chybu
# arr.append("hello") # TypeError: an integer is required (got type str)

numpy.ndarray:

  • Vlajková štruktúra pre vedecké výpočty.
  • Taktiež určené na ukladanie prvkov rovnakého typu (zvyčajne čísel), ale môžu byť viacrozmerné.
  • Zabezpečuje vysoký výkon vďaka vektorovým operáciám.
  • Má širokú škálu matematických funkcií a metód na prácu s dátami.
import numpy as np

# Vytvorenie NumPy poľa
np_arr = np.array([1.0, 2.0, 3.0, 4.0, 5.0])
print(np_arr) # [1. 2. 3. 4. 5.]

# Vektorová operácia
result = np_arr * 2
print(result) # [2. 4. 6. 8. 10.]

Kľúčové rozdiely:

Prvok Zoznam (list) array.array numpy.ndarray
Typ dát Rôznorodé Jednolodné (podľa typu) Jednolodné (podľa dtype)
Meniteľnosť Meniteľný (Mutable) Meniteľný (Mutable) Meniteľný (Mutable)
Výkon Nižší pre číselné operácie Vyšší ako zoznamy Najvyšší pre vektorové operácie
Použitie Všeobecné účely Úsporné ukladanie čísel Vedecké výpočty, analýza dát
Dimenzie Jednodimenzionálne Jednodimenzionálne Viacdimenzionálne

Takže hlavný rozdiel spočíva v jednorodosti prvkov (pre polia) a ich špecializácii: array pre pamäť, numpy pre výpočty, zatiaľ čo zoznamy sú univerzálnym nástrojom.