Junior
Какви са разликите между масиви и списъци в Python?
sobes.tech AI
Отговор от AI
Python'dakı (list) siyahılar dəyişdirilə bilən (mutable) ardıcıl elementlər toplusudur. Onlar müxtəlif məlumat tiplərindən elementlər içərə bilər. Əksər tapşırıqlar üçün geniş istifadə olunur.
Python'dakı massivlər adətən array və ya numpy kitabxanasına aid strukturlara istinad edir.
array.array:
- Eyni tipli elementlərin (rəqəmlərin) saxlanması üçün nəzərdə tutulmuşdur.
- Listlərə nisbətən yaddaşda daha səmərəli, çünki elementləri ardıcıl saxlayır.
- Bəzi aşağı səviyyəli əməliyyatları və çevirmələri dəstəkləyir (məsələn, baytlara çevirmək).
import array
# Tam ədədlər üçün massiv yaratmaq
arr = array.array('i', [1, 2, 3, 4, 5])
print(arr) # array('i', [1, 2, 3, 4, 5])
# Başqa tipli element əlavə etməyə cəhd etmək səhv gətirər
# arr.append("salam") # TypeError: tam ədəd tələb olunur (str alındı)
numpy.ndarray:
- Elmi hesablamalar üçün əsas strukturdur.
- Eyni tipli elementlərin (adətən ədədlər) saxlanması üçün nəzərdə tutulmuşdur, lakin çoxölçülü ola bilər.
- Vektorlaşdırılmış əməliyyatlar sayəsində yüksək performans təmin edir.
- Məlumatlarla işləmək üçün geniş riyazi funksiyalar və metodlar toplusuna malikdir.
import numpy as np
# NumPy massivinin yaradılması
np_arr = np.array([1.0, 2.0, 3.0, 4.0, 5.0])
print(np_arr) # [1. 2. 3. 4. 5.]
# Vektorlaşdırılmış əməliyyat
result = np_arr * 2
print(result) # [2. 4. 6. 8. 10.]
Əsas fərqlər:
| Xüsusiyyət | Siyahı (list) |
array.array |
numpy.ndarray |
|---|---|---|---|
| Məlumat tipi | Heterogen | Homogen (dtype ilə) | Homogen (dtype ilə) |
| Dəyişdirilə bilənlik | Dəyişdirilə bilən | Dəyişdirilə bilən | Dəyişdirilə bilən |
| Performans | Rəqəmsal əməliyyatlar üçün aşağı | Rəqəmsal əməliyyatlar üçün ən yüksək | Ən yüksək vektorlaşdırılmış əməliyyatlar üçün |
| İstifadə sahəsi | Ümumi məqsədli | Səmərəli ədədlərin saxlanması | Elmi hesablamalar, məlumatların analizi |
| Ölçü | Birölçülü | Birölçülü | Çoxölçülü |
Beləliklə, əsas fərq elementlərin homojenliyi (massivlər üçün) və onların ixtisaslaşmasıdır: array yaddaş üçün, numpy hesablamalar üçün, siyahılar isə çox yönlü vasitədir.