خانه / آموزش‌ها / آموزش جامع لیست‌ها در پایتون

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

🐍 HomeOfPython
|
📅 1404/10/16

سطح مقدماتی (Beginner Level)

لیست‌ها (Lists) یکی از مهم‌ترین و پرکاربردترین ساختارهای داده در پایتون هستند. آن‌ها مجموعه‌ای از آیتم‌ها هستند که ترتیب دارند (Ordered) و قابل تغییر (Mutable) می‌باشند.

۱. ساخت لیست و دسترسی به عناصر

برای ساخت لیست از براکت [] استفاده می‌کنیم. هر آیتم با کاما , جدا می‌شود.

مثال ۱: ساخت لیست ساده

Python

مثال ۲: دسترسی با ایندکس (Index)

ایندکس‌ها در پایتون از صفر شروع می‌شوند.

Python

۲. برش دادن لیست (Slicing)

شما می‌توانید بخشی از لیست را با استفاده از عملگر : استخراج کنید. فرمت کلی [start:stop:step] است.

مثال ۱: برش ساده

Python

مثال ۲: گام حرکت (Step)

Python

۳. متدهای پایه (افزودن و حذف کردن)

چون لیست‌ها Mutable هستند، می‌توانید محتوای آن‌ها را تغییر دهید.

مثال ۱: اضافه کردن با append و insert

متد append به انتهای لیست اضافه می‌کند، اما insert در جایگاه مشخصی قرار می‌دهد.

Python

مثال ۲: حذف کردن با pop و remove

Python

مثال ۳: تغییر مقدار یک آیتم

python
# این قطعه کد اجرایی نیست و فقط سینتکس را نشان می‌دهد
my_list = [10, 20, 30]
my_list[0] = 99  # تغییر مقدار اولین خانه

سطح پیشرفته (Professional Level)

در این بخش به مفاهیم عمیق‌تر مانند نحوه مدیریت حافظه در لیست‌ها، List Comprehension و کپی‌های سطحی و عمیق می‌پردازیم.

۱. List Comprehensions

این قابلیت پایتون به شما اجازه می‌دهد تا لیست‌های جدید را به صورت فشرده و در یک خط بر اساس لیست‌های موجود بسازید. این روش معمولاً سریع‌تر از حلقه‌های for معمولی است.

مثال ۱: ساخت لیست توان دوم

Python

مثال ۲: فیلتر کردن با شرط (Conditional Logic)

Python

مثال ۳: شرط‌های پیچیده (if-else در Comprehension)

Python

۲. کپی کردن لیست‌ها (Shallow vs Deep Copy)

یکی از خطاهای رایج برنامه‌نویسان، کپی کردن لیست با علامت = است. در پایتون، انتساب نام لیست به متغیر دیگر، فقط رفرنس (آدرس حافظه) را کپی می‌کند، نه خود داده‌ها را.

نمودار حافظه در کپی لیست

مثال ۱: مشکل کپی با ارجاع

Python

مثال ۲: کپی صحیح (Shallow Copy)

برای جلوگیری از مشکل بالا، باید یک کپی جدید بسازید.

Python

۳. باز کردن لیست (Unpacking)

آنپکینگ به شما اجازه می‌دهد عناصر لیست را مستقیماً به متغیرها اختصاص دهید.

مثال ۱: آنپکینگ ساده

Python

مثال ۲: استفاده از * (Asterisk)

اگر تعداد متغیرها با تعداد عناصر لیست برابر نباشد، می‌توان بقیه موارد را در یک لیست جدید جمع کرد.

Python

۴. مرتب‌سازی: sort() در برابر sorted()

تفاوت مهمی بین این دو وجود دارد: sort لیست اصلی را تغییر می‌دهد (In-place)، اما sorted یک لیست جدید برمی‌گرداند و لیست اصلی دست‌نخورده می‌ماند.

مثال ۱: تفاوت عملکرد

Python

مثال ۲: مرتب‌سازی با کلید سفارشی (Key)

Python