پایتون A تا Z : دوره کامل توسعه پایتون برای مبتدیان

لیست در پایتون (ایجاد ، افزودن ، دسترسی ، برش ، حذف ، بررسی ، حلقه ، ادغام ، مرتب سازی ، تودرتو)

تعریف
پایتون طیف وسیعی از انواع داده مرکب را ارائه می دهد که غالباً به آن‌ها توالی گفته می شود. لیست یکی از پر استفاده ترین انواع داده است. در واقع ، لیست در پایتون مجموعه ای از موارد است: در نتیجه ، اغلب هنگامی که می خواهید یک مورد را ذخیره کنید و سپس به ترتیب بسیار خاصی به آن دسترسی پیدا کنید ، از لیست استفاده می شود.

list-illustration

ویژگی های مهم لیست های پایتون به شرح زیر است:

1.لیست ها مرتب می شوند – لیست ها ترتیب موارد درج شده را به خاطر می آورند.
2.قابل دسترسی توسط شاخص – با استفاده از شاخص می توان به موارد موجود در یک لیست دسترسی داشت.
3.لیست ها می توانند شامل هر نوع شئ object باشند – می تواند اعداد ، رشته ها ، تاپل ها – و حتی لیست های دیگر (تو در تو) باشد.
4.لیست ها پویا هستند – می توانید لیستی را در محل تغییر دهید ، موارد جدید اضافه کنید و حتی موارد موجود را حذف یا بروز کنید.


ساختن لیست

عالی! اکنون که فهمیدید لیست چیست ، بیایید جلو برویم و نحوه‌ی ساخت لیست در پایتون را کشف کنیم – همچنین همه کارهایی که می توانید روی آن انجام دهید چیست ، به منظور: افزودن ، حذف یا دسترسی به مورد ، یا حتی یک مورد خاص را در داخل این لیست جستجو کنید.

روش های مختلفی برای ایجاد یک لیست جدید وجود دارد. در زبان برنامه نویسی پایتون ، ساده ترین راه برای ایجاد یک لیست این است: تمام موارد را که به عنوان عناصر نیز شناخته می شوند ، درون براکت قرار دهید []  و با کاما جدا کنید. این می تواند هر تعداد آیتم در داخل داشته باشد ، و حتی ممکن است انواع مختلفی از داده ها داشته باشد -مثل عدد صحیح ، اعشاری ، رشته ، بولی(صحیح/غلط) ، یا حتی یک لیست تو در توی دیگر ، که شامل موارد دیگر از انواع مختلف داده و غیره است.

python-list-index-negative

بیایید نگاه دقیق تری به دستو آن داشته باشیم ، بنابراین می توانید لیست خود را اعلام کنید. در اینجا مثالی آورده شده است که در آن می خواهید لیستی از رشته ها را ذخیره کنید. ابتدا ، بیایید یک لیست خالی  با براکت های خالی [] اعلام کنیم. در نهایت ، شما همه رشته ها را اضافه می کنید ، بنابراین می توانید مقادیر آن را ذخیره کنید و سپس به آن‌ها دسترسی پیدا کنید.

لیست حاوی صفر مورد را لیست خالی می نامند و می توانید با براکت های خالی [] یکی را ایجاد کنید. اما ، همچنین می توانید از سازنده لیست () برای اعلام لیست جدید در پایتون استفاده کنید ، یا حتی انواع دیگر داده ها مانند رشته یا tuples را به لیست تبدیل کنید.


افزودن / به روزرسانی لیست

افزودن / به روزرسانی لیست بسیار خوب است ، اما هنگامی که لیست خود را ایجاد کردید ، ممکن است بخواهید موارد دیگری را اضافه کنید یا مقادیر را به روز کنید. افزودن یا به روزرسانی موارد لیست بسیار آسان است. لیست ها قابل تغییر هستند ، به این معنی که می توان عناصر آن‌ها را تغییر داد. در واقع ، شما می توانید با استفاده از روش ()append ، یک مورد را به لیست اضافه کنید یا چندین مورد را همزمان با استفاده از روش ()extend اضافه کنید. برای افزودن مقادیر جدید به لیست ، از روش ()append  استفاده کنید. این روش موارد را فقط به انتهای لیست اضافه می کند.

علاوه بر این ، می توانید با استفاده از روش ()insert  ، یک مورد را در مکان دلخواه وارد کنید. اگر می خواهید موردی را در یک موقعیت خاص در یک لیست وارد کنید ، از روش ()insert  استفاده خواهید کرد. توجه داشته باشید که: تمام مقادیر موجود در لیست پس از مقدار درج شده ، مقدار عدد 1 به شاخص آن‌ها اضافه می‌شوند.

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


دسترسی به یک مورد
البته ، به نوعی عناصر لیست باید در دسترس باشند! اگر مانند کلید واژه نامه در پایتون آن‌ها را با کلید دریافت نکنید ، پس چگونه به آن‌ها دست یابید؟

Python-List-Indexing

شما می توانید یک لیست را به عنوان رابطه ای بین شاخص ها و مقادیر در نظر بگیرید. به این رابطه نگاشت گفته می شود ، جایی که هر نمایه یکی از مقادیر را ترسیم می کند. بنابراین ، می توان با استفاده از یک لیست، در براکت[] ، به موارد جداگانه یک لیست دسترسی داشت.

این دقیقاً مشابه دسترسی به نویسه های منفرد ، در یک رشته است. شاخص باید یک عدد صحیح باشد ، در غیر این صورت منجر به TypeError می شود. و ، فهرست بندی در پایتون ، مانند رشته ها ، مبتنی بر صفر است. بنابراین ، اولین عنصر یک لیست ، همیشه دارای شاخص صفر خواهد بود. شاخص‌های مقادیر موجود در یک لیست به شرح زیر نشان داده شده است. به عنوان مثال: لیستی با 5 عنصر دارای شاخصی از 0 تا 4 است. و شما می توانید با استفاده از فهرست‌بندی آن  در براکت ، به موارد جداگانه لیست دسترسی داشته باشید.

با این وجود ، اگر به شاخصی مراجعه کنید که در این لیست نیست ، یک Exception دریافت خواهید کرد. برای جلوگیری از چنین استثنائی(Exception) ، اگر از شاخصی استفاده کنید که از تعداد موارد موجود در لیست شما بیشتر باشد ، پایتون خطای “IndexError: index index out of range” را ایجاد می کند.


شاخص‌بندی منفی لیست

Python-Negative-List-Indexing

تقریباً همه موارد مربوط به شاخص‌سازی رشته برای لیست ها به همین ترتیب کار می کنند. بنابراین ، می توانید با شاخص‌سازی منفی به لیستی دسترسی پیدا کنید. به عنوان مثال ، یک شاخص منفی لیست از انتهای لیست شمارش می شود. بنابراین ، شاخص 1- به آخرین مورد ، 2- به دومین مورد آخر و غیره اشاره دارد. شاخص‌های منفی موارد موجود در لیست به صورت زیر نشان داده شده است.


برش دادن یک لیست (قطعه قطعه کردن لیست و جدا کردن موارد در قطعه های مختلف)

Python-List-Slicing-Illustration

بخشی از یک لیست را تکه(slice) می نامند. با استفاده از عملگر slice می توانید به طیف وسیعی از موارد در لیست دسترسی پیدا کرده یا استخراج کنید.

Python-List-Slicing-Syntax

عملگر برش [my_list[start:stop بخشی از لیست را از مورد “start-th” تا مورد “stop-th” را برمی گرداند ، كه شامل اولین مورد است اما مورد آخر را حذف می كند. لطفاً توجه داشته باشید که یک برش از لیست نیز یک لیست است – و ممکن است بخواهید یک پارامتر اندازه گام تعیین کنید.

Python-List-Slicing-Specifying-Step-Size

اما ، اگر پارامتر start را مشخص نکنید ، از ابتدای این لیست شروع می شود!(یعنی از شاخص 0 ) از طرف دیگر ، اگر پارامتر پایان را مشخص نکنید ، تمام موارد را طی می کند تا به انتهای لیست برسد.(یعنی تا شاخص پایانی)


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

یک مورد را به وسیله‌ی شاخص حذف کنید
اگر شاخص مورد مورد نظر خود را می دانید ، می توانید از دستور ()pop  برای حذف یک مورد ، در یک شاخص مشخص استفاده کنید. لیست را اصلاح کرده و مورد برداشته شده را برمی گرداند. اگر شاخصی مشخص نشده باشد ، ()pop  آخرین مورد را از لیست حذف و در  محل برمی گرداند. این ممکن است به شما کمک کند لیست ها را به صورت پشته پیاده سازی کنید – به معنی ساختار داده : اولین باشد ، آخرین نباشد .

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

برای حذف بیش از یک مورد ، از کلمه کلیدی del با شاخص برش(slice index) استفاده کنید.


حذف مورد(item) به وسیله‌ی مقدار
اگر مطمئن نیستید که مورد در کجای لیست قرار دارد ، می توانید از دستور ()remove  برای حذف آیتم داده شده بر حسب مقدار استفاده کنید.

اما ، به خاطر داشته باشید که اگر بیش از یک مورد از موارد ارائه شده وجود داشته باشد ، این روش فقط مورد اول را حذف می کند


حذف همه موارد
برای خالی کردن لیستی می توانید از دستور ()clear  نیز استفاده کنید. از دستور ()clear برای حذف همه موارد از لیست ، به یک باره استفاده کنید. و کلمه کلیدی del برای حذف خود لیست ، به طور کامل.


بررسی وجود
برای تعیین این که آیا یک مقدار در لیست است یا نه ، می توانید همراه با دستور if از عملگرهای “in” و “not in” استفاده کنید.


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

اگر فقط به خواندن موارد لیست نیاز دارید ، این خوب جواب می دهد. اما ، اگر بخواهید آن‌ها را به روز کنید ، به شاخص‌ها نیاز خواهید داشت. یک دستور معمول برای انجام این کار ، ترکیبی از توابع ()range  و ()len  است. به عنوان مثال ، این حلقه از طریق لیست تکرار می شود و هر مورد را دو برابر می کند.

طول لیست
ممکن است بخواهید تعداد شاخص‌های موجود را پیدا کنید. در این صورت ، لازم نیست که کل لیست را تکرار کنید و هر مورد را بشمارید و می‌توانید از تابع ()len که تعداد موارد موجود در لیست را برمی گرداند استفاده کنید.


ادغام دو لیست
ممکن است گاهی اوقات بخواهید یا باید دو لیست را ادغام کنید ، بنابراین می توانید تمام داده های خود را در یک متغیر قرار دهید. یا حتی مقادیر آن را با محتوای جدید به روز کنید. در این حالت: برای ادغام مقادیر یک لیست در لیست دیگر ، از دستور داخلی  ()extend استفاده کنید. لیستی را به عنوان آرگومان می گیرد و همه عناصر این لیست را به لیست اول اضافه می کند. توجه داشته باشید که: این روش مقادیر موجود را رونویسی نمی کند و آن‌ها را در انتهای لیست خود اضافه کنید.

همانطور که در این مثال مشاهده می کنید ، ادغام دو لیست منجر به ترکیب همه موارد می شود.

 

به عنوان روش جایگزین ، می توانید از اپراتور اتصال (+) یا اپراتور انتساب افزوده (+ =) برای ترکیب 2 لیست استفاده کنید.


لیست های تو در تو
یک لیست می تواند شامل لیست های فرعی به عنوان یک مورد باشد ، که به نوبه خود می تواند خود لیست های فرعی باشد و غیره. این گونه لیست به عنوان لیست تو در تو شناخته می شود. می توانید از آن‌ها برای ترتیب داده ها در ساختارهای سلسله مراتبی استفاده کنید.

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

Python-Nested-List-Indexing

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


دستورات و توابع
پایتون مجموعه ای از روش های داخلی دیگر را دارد که می توانید آن‌ها را روی اشیاء لیست فراخوانی کنید. بنابراین می توانید مقادیر جدیدی اضافه یا وارد کنید ، حتی یک مقدار خاص را دریافت یا حذف کنید. اما ، ممکن است گاهی اوقات بخواهید یک لیست مرتب کنید ، لیست تکراری ، تعداد دفعاتی که یک مورد در لیست شما وجود دارد را شمارش کنید ، مقادیر حداقل یا حداکثر آن را بدست آورید یا حتی آن را معکوس کنید؟ البته همه این‌ها با استفاده از این روش های داخلی به روشی بسیار ساده امکان پذیر است.

اگر علاقه مندید که در مورد این روش ها بیشتر بدانید ، می توانید اطلاعات بیشتری را در وب سایت پایتون و مستندات آن بیابید.

 

 

دستور تعریف
()append یک مورد را به انتهای لیست اضافه می کند
()insert یک مورد را در یک موقعیت مشخص قرار می دهد
()extend لیست را با افزودن تمام موارد موجود در موارد قابل تکرار گسترش می دهد
()remove نمونه اول مورد مشخص شده را حذف می کند
()pop مورد را در موقعیت داده شده در لیست حذف می کند
()clear همه موارد را از لیست حذف می کند
()copy یک نسخه کم عمق از لیست را برمی گرداند
()count تعداد موارد مشخص شده را در لیست برمی گرداند
()index شاخص نمونه اول مورد مشخص شده را برمی گرداند
()reverse موارد لیست را در جای خود معکوس می کند
()sort موارد لیست را در جای خود مرتب می کند

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

روش تعریف
()all اگر همه موارد لیست درست باشد ، درست برمی گردد
()any اگر 1 مورد از لیست یا بیشتر ، درست باشد ، درست را برمی گرداند
()enumerate یک لیست را می گیرد و یک شئ شمارش را برمی گرداند
()len تعداد موارد موجود در لیست را برمی گرداند
()list تکرار شونده‌ها (tuple ، string ، set و غیره) را به لیست تبدیل می کند
()max بزرگترین مورد از لیست را برمی گرداند
()min کوچکترین مورد لیست را برمی گرداند
()sorted لیست مرتب شده را برمی گرداند
()sum موارد لیست را جمع می کند

خلاصه نتیجه‌گیری

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

در آموزش بعدی ، نوع داده دیگری را با جزئیات کشف خواهید کرد: Tuples

 

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا