Sobes.tech
Junior

Mik a különbségek a tömbök és a listák között Pythonban?

sobes.tech MI

Válasz az MI-től

A Python listák (list) módosítható (mutable) rendezett elemek gyűjteményei. Tartalmazhatnak különböző adattípusú elemeket. Széles körben használják a legtöbb feladathoz.

A Pythonban az array-ek általában az array vagy numpy könyvtárak struktúráira utalnak.

array.array:

  • Azonos típusú elemek (számok) tárolására tervezték.
  • Memóriában tömörebbek, mint a listák, mivel folyamatosan tárolják az elemeket.
  • Néhány alacsony szintű műveletet és átalakítást támogatnak (pl. byte-okká alakítás).
import array

# Egész számok tömbjének létrehozása
arr = array.array('i', [1, 2, 3, 4, 5])
print(arr) # array('i', [1, 2, 3, 4, 5])

# Más típusú elem hozzáadása hibát eredményez
# arr.append("szia") # TypeError: egész szám szükséges (str-t kapott)

numpy.ndarray:

  • A tudományos számítások fő struktúrája.
  • Szintén azonos típusú elemek (általában számok) tárolására tervezték, de lehet többdimenziós.
  • Magas teljesítményt nyújt vektorizált műveletekkel.
  • Széles körű matematikai függvényeket és módszereket tartalmaz az adatok kezeléséhez.
import numpy as np

# NumPy tömb létrehozása
np_arr = np.array([1.0, 2.0, 3.0, 4.0, 5.0])
print(np_arr) # [1. 2. 3. 4. 5.]

# Vektorizált művelet
result = np_arr * 2
print(result) # [2. 4. 6. 8. 10.]

Fő különbségek:

Jellemző Lista (list) array.array numpy.ndarray
Adattípus Heterogén Homogén (a dtype szerint) Homogén (a dtype szerint)
Módosíthatóság Módosítható Módosítható Módosítható
Teljesítmény Alacsonyabb numerikus műveleteknél Magasabb, mint a listák Legmagasabb vektorizált műveleteknél
Használat Általános célokra Hatékony számok tárolására Tudományos számítások, adatelemzés
Dimenzió Egydimenziós Egydimenziós Többdimenziós

Így a fő különbség az elemek homogénsége (a tömbök esetében) és szakosodottsága: array a memória, numpy a számítások, míg a listák sokoldalú eszközök.