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.