آموزش پایتون - آرایهها
آرایهها در پایتون
برخلاف سایر زبانهای برنامهنویسی مانند C++ یا Java، پایتون دارای پشتیبانی داخلی (built-in) برای آرایهها نیست. با این حال، پایتون دارای چند نوع داده مانند لیستها و تاپلها (بهویژه لیستها) است که اغلب به عنوان آرایه استفاده میشوند، اما آیتمهای ذخیرهشده در این نوع دنبالهها نیازی نیست که از یک نوع باشند.
علاوه بر این، ما میتوانیم با استفاده از ماژول array، آرایهها را ایجاد و مدیریت کنیم. قبل از ادامه، اجازه دهید ابتدا مفهوم کلی آرایهها را درک کنیم.
آرایه چیست؟
یک آرایه محفظهای است که میتواند تعداد مشخصی از آیتمها را در خود نگه دارد و این آیتمها باید از یک نوع باشند. هر آیتم ذخیرهشده در آرایه، عنصر (element) نامیده میشود و میتواند از هر نوعی از جمله اعداد صحیح، اعداد اعشاری، رشتهها و غیره باشد.
این عناصر در خانههای پیوسته حافظه ذخیره میشوند. هر خانه از یک عنصر در آرایه، دارای یک اندیس (index) عددی است که از ۰ شروع میشود. این اندیسها برای شناسایی و دسترسی به عناصر استفاده میشوند.
نمایش آرایه
آرایهها به صورت مجموعهای از چند محفظه نشان داده میشوند که هر محفظه یک عنصر را ذخیره میکند. این محفظهها از '0' تا 'n-1' اندیسگذاری میشوند که n اندازه آن آرایه خاص است.
آرایهها را میتوان به روشهای مختلفی در زبانهای مختلف تعریف کرد. در ادامه یک تصویر برای درک بهتر آورده شده است −

طبق تصویر بالا، نکات مهم زیر باید مد نظر قرار گیرند −
-
اندیس از ۰ شروع میشود.
-
طول آرایه ۱۰ است، به این معنی که میتواند ۱۰ عنصر را ذخیره کند.
-
هر عنصر از طریق اندیس خود قابل دسترسی است. به عنوان مثال، میتوانیم عنصر موجود در اندیس ۶ را به عنوان ۹ دریافت کنیم.
ایجاد آرایه در پایتون
برای ایجاد آرایه در پایتون، ماژول array را وارد (import) کرده و از تابع array() آن استفاده کنید. با استفاده از این تابع میتوانیم آرایهای از سه نوع پایه یعنی عدد صحیح، عدد اعشاری و کاراکترهای یونیکد ایجاد کنیم.
تابع array() مقادیر typecode و initializer را به عنوان پارامتر میپذیرد و شیئی از کلاس array برمیگرداند.
سنتکس (Syntax)
سنتکس ایجاد آرایه در پایتون به صورت زیر است −
# importing
import array as array_name
# creating array
obj = array_name.array(typecode[, initializer])
که در آن،
-
typecode − کاراکتر کد نوع که برای مشخص کردن نوع عناصر در آرایه استفاده میشود.
-
initializer − مقداری اختیاری است که آرایه از روی آن مقداردهی اولیه میشود. این مقدار باید یک لیست، یک شیء از نوع بایت یا عناصر قابل پیمایش (iterable) از نوع مناسب باشد.
مثال
مثال زیر نحوه ایجاد یک آرایه در پایتون را با استفاده از ماژول array نشان میدهد.
import array as arr
# creating an array with integer type
a = arr.array('i', [1, 2, 3])
print (type(a), a)
# creating an array with char type
a = arr.array('u', 'BAT')
print (type(a), a)
# creating an array with float type
a = arr.array('d', [1.1, 2.2, 3.3])
print (type(a), a)
این کد خروجی زیر را تولید خواهد کرد −
<class 'array.array'> array('i', [1, 2, 3])
<class 'array.array'> array('u', 'BAT')
<class 'array.array'> array('d', [1.1, 2.2, 3.3])
نوع آرایه پایتون توسط یک کاراکتر تک به عنوان آرگومان Typecode تعیین میشود. کدهای نوع و نوع داده مورد نظر آرایه در زیر آمده است −
| کد نوع (typecode) | نوع داده پایتون | اندازه به بایت |
|---|---|---|
| 'b' | عدد صحیح علامتدار | ۱ |
| 'B' | عدد صحیح بدون علامت | ۱ |
| 'u' | کاراکتر یونیکد | ۲ |
| 'h' | عدد صحیح علامتدار | ۲ |
| 'H' | عدد صحیح بدون علامت | ۲ |
| 'i' | عدد صحیح علامتدار | ۲ |
| 'I' | عدد صحیح بدون علامت | ۲ |
| 'l' | عدد صحیح علامتدار | ۴ |
| 'L' | عدد صحیح بدون علامت | ۴ |
| 'q' | عدد صحیح علامتدار | ۸ |
| 'Q' | عدد صحیح بدون علامت | ۸ |
| 'f' | عدد اعشاری (ممیز شناور) | ۴ |
| 'd' | عدد اعشاری (ممیز شناور) | ۸ |
عملیاتهای پایه روی آرایهها در پایتون
عملیاتهای پایه زیر توسط آرایه پشتیبانی میشوند −
-
پیمایش (Traverse) − چاپ تمام عناصر آرایه به صورت تک به تک.
-
درج (Insertion) − اضافه کردن یک عنصر در اندیس دادهشده.
-
حذف (Deletion) − حذف یک عنصر در اندیس دادهشده.
-
جستجو (Search) − جستجوی یک عنصر با استفاده از اندیس دادهشده یا بر اساس مقدار.
-
بهروزرسانی (Update) − بهروزرسانی یک عنصر در اندیس دادهشده.
دسترسی به عناصر آرایه
ما میتوانیم با استفاده از اندیس عنصر، به هر یک از عناصر آرایه دسترسی داشته باشیم.
مثال
کد زیر نحوه دسترسی به عناصر یک آرایه را نشان میدهد.
from array import *
array1 = array('i', [10,20,30,40,50])
print (array1[0])
print (array1[2])
هنگامی که برنامه بالا را کامپایل و اجرا میکنیم، نتیجه زیر را تولید میکند −
10
30
عملیات درج (Insertion)
در عملیات درج، یک یا چند عنصر داده را وارد آرایه میکنیم. بر اساس نیاز، عنصر جدید را میتوان در ابتدا، انتها یا هر اندیس دلخواهی از آرایه اضافه کرد.
مثال
در اینجا، با استفاده از متد داخلی insert() در پایتون، یک عنصر داده را در وسط آرایه اضافه میکنیم.
from array import *
array1 = array('i', [10,20,30,40,50])
array1.insert(1,60)
for x in array1:
print(x)
هنگامی که برنامه بالا را کامپایل و اجرا میکنیم، نتیجه زیر را تولید میکند که نشان میدهد عنصر در موقعیت اندیس ۱ درج شده است.
10
60
20
30
40
50
عملیات حذف (Deletion)
حذف به معنای برداشتن یک عنصر موجود از آرایه و سازماندهی مجدد تمام عناصر آرایه است.
در اینجا، با استفاده از متد داخلی remove() در پایتون، یک عنصر داده را از وسط آرایه حذف میکنیم.
from array import *
array1 = array('i', [10,20,30,40,50])
array1.remove(40)
for x in array1:
print(x)
هنگامی که برنامه بالا را کامپایل و اجرا میکنیم، نتیجه زیر را تولید میکند که نشان میدهد عنصر از آرایه حذف شده است.
10
20
30
50
عملیات جستجو (Search)
شما میتوانید یک عملیات جستجو روی آرایه انجام دهید تا یک عنصر آرایه را بر اساس مقدار یا اندیس آن پیدا کنید.
مثال
در اینجا، یک عنصر داده را با استفاده از متد داخلی index() در پایتون جستجو میکنیم −
from array import *
array1 = array('i', [10,20,30,40,50])
print (array1.index(40))
هنگامی که برنامه بالا را کامپایل و اجرا میکنیم، اندیس عنصر جستجوشده را نمایش میدهد. اگر مقدار در آرایه وجود نداشته باشد، یک خطا برمیگرداند.
3
عملیات بهروزرسانی (Update)
عملیات بهروزرسانی به تغییر یک عنصر موجود از آرایه در یک اندیس مشخص اشاره دارد. در اینجا، ما صرفاً یک مقدار جدید را به اندیس مورد نظری که میخواهیم بهروزرسانی شود اختصاص میدهیم.
مثال
در این مثال، مقدار عنصر آرایه را در اندیس ۲ بهروزرسانی میکنیم.
from array import *
array1 = array('i', [10,20,30,40,50])
array1[2] = 80
for x in array1:
print(x)
با اجرای برنامه بالا، نتیجه زیر تولید میشود که مقدار جدید را در موقعیت اندیس ۲ نشان میدهد.
10
20
80
40
50
پیشرفت مطالعه: وضعیت خواندهشدن این درس فقط در همین مرورگر ذخیره میشود؛ بدون نیاز به حساب کاربری.