تفاوت لیست و آرایه پایتون چیست؟

امیرحسین بیگدلو 12 ماه قبل

ویدیو پیشنهادی: ویدیو آموزش آرایه در پایتون

 

در پایتون list و array ساختارهای داده ای هستند که برای ذخیره اطلاعات استفاده میشوند و هر دو از ایندکس، برش و پیمایش پشتیبانی میکنند. در این مقاله به طور کامل با لیست و آرایه پایتون آشنا شده و تفاوت آنها را درک خواهیم کرد.

 

پایتون دارای ساختارهای داده های مختلف با ویژگی ها و عملکردهای مختلف است. ساختارهای داده داخلی آن شامل لیست ها، تاپل ها، set ها و دیکشنری ها است. با این حال، پایتون به همین ساختارهای داده خلاصه نمیشود. برخی از ساختارهای داده اضافی را می توان از ماژول ها یا پکیج های مختلف وارد کرد.

 

برای استفاده از آرایه باید آن را از ماژول array و یا از پکیج numpy ایمپورت کنید. و این اولین تفاوت بین لیست و آرایه است.

 

دوره پیشنهادی: دوره آموزش رایگان الگوریتم‌نویسی در پایتون

 

 #  لیست پایتون چیست؟

list ساختار داده داخلی پایتون است که میتواند مجموعه ای از آیتم ها را در خود ذخیره کند. لیست های پایتون چند ویژگی مهم دارند:

  • آیتم های لیست در داخل براکت قرار میگیرند.
  • لیست ها منظم هستند. آیتم ها در لیست ترتیب ورودی را حفظ میکنند، بنابراین میتوانید از ایندکس برای دسترسی به آیتم ها استفاده کنید.
  • لیست ها تغییر پذیر هستند یعنی میتوانید آیتم های آن را کم یا زیاد کنید.
  • آیتم های لیست میتوانند تکراری باشند.
  • آیتم های لیست میتوانند از انواع مختلفی از داده ها باشند.

 

ساخت لیست در پایتون بسیار ساده است:

>>> list = [3, 6, 9, 12]
>>> list
[3, 6, 9, 12]
>>> type(list)
<class 'list'>

 

لیست های پایتون همه جا کاربرد دارند و میتوانند برای ذخیره دنباله ای از داده ها استفاده شوند.

 

مقاله پیشنهادی: متداول‌ترین ساختارهای داده در پایتون

 

 #  آرایه پایتون چیست؟

array در پایتون هم برای ذخیره مجموعه ای از آیتم ها استفاده میشود. آرایه ها مانند لیست ها منظم هستند، تغییر پذیر هستند، در براکت ها محصور میشوند و میتوانند موارد تکراری را نیز در خود ذخیره کنند.

 

اما وقتی صحبت از توانایی آرایه برای ذخیره انواع داده های مختلف می شود، پاسخ آنقدرها هم ساده نیست. بستگی به نوع آرایه مورد استفاده دارد.

 

برای استفاده از آرایه های پایتون باید از ماژول array یا پکیج numpy استفاده کنید.

import array as arr
# OR
import numpy as np

 

در آرایه ماژول array پایتون تمام آیتم ها باید از یک نوع داده باشند. همچنین در این نوع آرایه باید نوع داده را نیز به شکل دستی مشخص کنید. مثلا در کد زیر از کاراکتر i استفاده کردیم که مخفف int است، به این معنی که تمام داده های ذخیره شده در این آرایه عدد صحیح هستند:

>>> array_1 = arr.array("i", [3, 6, 9, 12])
>>> array_1
array('i', [3, 6, 9, 12])
>>> type(array_1)
<class 'array.array'>

 

اما اگر از آرایه پکیج numpy استفاده کنید میتوانید داده های مختلف را ذخیره کنید. برای ساختن آرایه numpy فقط کافیست آیتم های آن را در براکت مشخص کنید:

>>> array_2 = np.array(["a", 3, 6, 9, 12])
>>> array_2
['a' '3' '6' '9' '12']
>>> type(array_2)
<class 'numpy.ndarray'>

 

همانطور که میبینید آرایه array_2 عدد و رشته را ذخیره کرده است.

 

مقاله پیشنهادی: 2 روش برای ساخت لیست خالی در پایتون

 

 #  پس، تفاوت این دو چیست؟

حالا که ساز و کار آرایه و لیست را یاد گرفتید بیایید نگاهی به تفاوت این دو بکنیم:

 

  • استفاده از لیست ها ساده تر است. در مثال‌های بالا، مشاهده کردید که لیست‌ها به سادگی با قرار دادن یک دنباله از عناصر در براکت ایجاد می‌شوند. از طرف دیگر، ایجاد یک آرایه به یک تابع خاص از ماژول آرایه (یعنی array.array) یا پکیج NumPy (یعنی numpy.array) نیاز دارد. به همین دلیل، لیست ها بیشتر از آرایه ها استفاده می شوند.

 

  • آرایه ها می توانند داده ها را بسیار فشرده ذخیره کنند و برای ذخیره مقادیر زیاد داده کارآمدتر هستند.

 

  • آرایه ها برای عملیات های عددی عالی هستند. لیست ها نمی توانند مستقیماً عملیات ریاضی را انجام دهند. به عنوان مثال، شما می توانید هر عنصر از یک آرایه را تنها با یک خط کد به همان عدد تقسیم کنید. اگر همین کار را با یک لیست امتحان کنید، با خطا مواجه می شوید.

 

>>> array = np.array([3, 6, 9, 12])
>>> division = array/3
>>> division
[1. 2. 3. 4.]
>>> type(division)
<class 'numpy.ndarray'>

 

مقاله پیشنهادی:‌ تبدیل انواع داده در پایتون

 

پس چه زمانی باید از لیست و چه زمانی از آرایه استفاده کنیم؟

 

  • اگر نیاز به ذخیره دنباله نسبتا کوتاهی از آیتم ها دارید و قصد انجام هیچ عملیات ریاضی با آن را ندارید، یک لیست انتخاب عالی است. این ساختار داده به شما این امکان را می‌دهد که بدون وارد کردن ماژول‌ها یا پکیج های اضافی، دنباله‌ای از آیتم‌های مرتب، قابل تغییر و فهرست‌شده را ذخیره کنید.

 

  • اگر دنباله ای بسیار طولانی از آیتم ها دارید، از یک آرایه استفاده کنید. این ساختار ذخیره سازی داده کارآمدتری را ارائه می دهد.

 

  • اگر قصد انجام هر گونه عملیات عددی دارید، از یک آرایه استفاده کنید. تجزیه و تحلیل داده ها و علم داده به شدت به آرایه ها (بیشتر NumPy) متکی هستند.

 

مطالب مشابه



مونگارد