Sobes.tech
Junior

Kāda ir atšķirība starp masīviem un sarakstiem Python?

sobes.tech AI

Atbilde no AI

Python valodā saraksti (list) ir maināmi (mutable) un secīgi sakārtoti elementu kolekcijas. Tie var saturēt dažādu datu tipu elementus. Tie tiek plaši izmantoti lielākajā daļā uzdevumu.

Python masīvi parasti atsaucas uz array vai numpy bibliotēku struktūrām.

array.array:

  • paredzēti vienāda tipa elementu (skaitļu) glabāšanai.
  • ir kompakti atmiņā, salīdzinot ar sarakstiem, jo glabā elementus nepārtraukti.
  • atbalsta dažas zema līmeņa operācijas un pārveidojumus (piemēram, uz baitiem).
import array

# Veselu skaitļu masīva izveide
arr = array.array('i', [1, 2, 3, 4, 5])
print(arr) # array('i', [1, 2, 3, 4, 5])

# Mēģinājums pievienot citu tipu elementu izraisīs kļūdu
# arr.append("hello") # TypeError: an integer is required (got type str)

numpy.ndarray:

  • Galvenā struktūra zinātniskiem aprēķiniem.
  • Tāpat paredzēta vienāda tipa elementu glabāšanai (parasti skaitļi), bet var būt daudzdimensiju.
  • Nodrošina augstu veiktspēju ar vektorizētām operācijām.
  • Tam ir plašs matemātisko funkciju un metožu klāsts datu apstrādei.
import numpy as np

# NumPy masīva izveide
np_arr = np.array([1.0, 2.0, 3.0, 4.0, 5.0])
print(np_arr) # [1. 2. 3. 4. 5.]

# Vektorizēta operācija
result = np_arr * 2
print(result) # [2. 4. 6. 8. 10.]

Galvenās atšķirības:

Raksturlielums Saraksts (list) array.array numpy.ndarray
Datu tips Dažādi Vienots (atbilstoši tipam) Vienots (ar dtype)
Maināmība Maināms (Mutable) Maināms (Mutable) Maināms (Mutable)
Veiktspēja Zemāka skaitliskām operācijām Augstāka nekā saraksti Augstākā vektorizētām operācijām
Izmantošana Vispārējai lietošanai Ekonomiska skaitļu glabāšana Zinātniski aprēķini, datu analīze
Dimensija Viena dimensija Viena dimensija Daudzdimensiju

Tādējādi galvenā atšķirība ir elementu vienotībā (masīvos) un to specializācijā: array atmiņas taupīšanai, numpy aprēķiniem, bet saraksti ir universāls rīks.