سوالی دارید؟
تمایل دارید صفحه اینستاگرام کبیر را مشاهده نمایید؟

محتوای الکترونیکی

صفحه اصلی محتوای الکترونیکی

آموزش لیست در پایتون و کار با List

آموزش لیست در پایتون و کار با List

لیست در پایتون یکی از پر کاربردترین نوع داده‌ای است که تقریباً در تمام برنامه‌های خود از آن استفاده می‌کنیم. اگر بتوانیم در کار با لیست پایتون به مهارت کافی برسیم، روند برنامه نویسی ما سرعت بیشتری خواهد گرفت. همچنین خواهیم توانست کارهای بعضاً خارق العاده‌ای انجام دهیم! در این مقاله به بررسی نوع داده List  در پایتون، آموزش کار با آن، توابع مهم و تکنیک‌های کاربردی کار با لیست خواهیم پرداخت.اگر تا به حال حتی یک خط برنامه نویسی کرده باشید، حتماً برایتان سوال شده که چگونه می‌توان تعداد بسیار زیادی داده را در برنامه نگهداری کرد؟ فرض کنید بخواهیم نمرات یک دانشجو را در برنامه خود وارد کرده و روی آن پردازش‌هایی انجام دهیم.اگر بخواهیم برای هر درس این دانشجو یک متغیر در نظر بگیریم، برنامه بسیار پیچیده خواهد شد! از طرفی تعداد دروس دانشجو مشخص نیست و ما نمی‌دانیم چه تعداد متغیر باید در نظر بگیریم.به کمک لیست‌ها خواهیم توانست تعداد مقادیر زیادی را در یک متغیر نگه داشته و حتی روی آن عملیات‌های مختلفی را اجرا کنیم.اگر با زبان‌های برنامه نویسی مختلف کار کرده باشید، احتمالاً با آرایه‌ها آشنایی دارید. در یک تعریف بسیار کلی می‌توان لیست را یک نوع آرایه در پایتون دانست؛ آرایه‌ای که طول آن متغیر بوده و عناصر آن می‌توانند از انواع مختلف داده‌ای باشند.

فهرست محتوای آموزش

لیست در پایتون

o کاربرد لیست

دسترسی به اعضای لیست در پایتون

o اندیس لیست (ایندکس یا نمایه)

o اندیس منفی لیست در پایتون

o دسترسی به بخشی از لیست (برش زدن List)

لیست تو در تو یا لیست چند بعدی در پایتون

o تعریف ماتریس در پایتون

کار با عناصر لیست

o افزودن عنصر جدید به لیست

o حذف عنصر از لیست در پایتون

o تغییر عنصر در لیست

جستجو در لیست

o بررسی وجود داشتن عنصر در لیست با کلمه in
o جستجوی ایندکس عنصر در لیست
توابع مهم کار با لیست پایتون
o اندازه لیست با تابع len
o خارج کردن آخرین عنصر از لیست با متد pop
o برعکس کردن لیست با متد reverse (وارونه کردن)
o حذف تمام عناصر لیست با clear
پیمایش List در پایتون
o پیمایش در لیست با حلقه for و ایندکس‌ها
o حرکت در لیست با for in
جمع بندی: آموزش نوع داده لیست در پایتون

 

لیست در پایتون

لیست یک ساختمان داده مهم در پایتون است. به کمک لیست‌ها می‌توانیم دنباله‌ای از داده‌ها را در یک متغیر ذخیره کرده و روی آن‌ها عملیات‌های مختلفی را اجرا کنیم.
نوع داده‌ای لیست یکی از انواع داده مجموعه‌ای یا Collections  در این زبان محبوب است. لیست شامل مجموعه‌ای از عناصر به صورت ترتیبی و قابل تغییر است. لیست در پایتون با کروشه (براکت یا bracket) به شکل [] مشخص می‌شود؛ به طوری که با علامت کروشه باز ] لیست آغاز شده و تا علامت کروشه بسته [ ادامه می‌یابد.
هر عنصر درون لیست به وسیله کاما (ویرگول انگلیسی یا comma) به شکل , از یکدیگر جدا شده و می‌تواند از هر نوع داده دلخواهی باشد.

lst = ["Omid", 217, 22.5, "KabirApp"]

در یک خط کد بالا، یک لیست با نام lst ایجاد کرده‌ایم. سپس درون آن چهار مقدار با نوع داده‌ای مختلف قرار داده‌ایم. به همین راحتی!

کاربرد لیست

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

دسترسی به اعضای لیست در پایتون

همانطور که پیش‌تر نیز گفته شد، ساده‌ترین نوع تعریف یک لیست در پایتون، استفاده از دو علامت کروشه در کنار هم است.
با این تعریف، متوجه خواهید شد که امکان ایجاد یک لیست خالی نیز وجود دارد. در نتیجه حتماً نیازی نیست که در ابتدای کار تمام مقادیر درون لیست را داشته باشیم؛ بلکه در حین برنامه خواهیم توانست مقادیر دلخواه خود را به آن اضافه یا از آن کم کنیم.
دسترسی به اعضای لیست بر اساس اندیس‌های آن صورت می‌گیرد. اندیس‌ها اعدادی هستند که موقعیت هر عنصر در لیست را مشخص می‌کنند.
اولین عنصر یک لیست دارای اندیس صفر (0) و به طور کلی nاُمین عنصر دارای اندیس n-1 خواهد بود.

اندیس لیست (ایندکس یا نمایه(

فرض کنید یک لیست از اسامی افراد مختلف را درون لیست خود داریم.

lst = ["sara", "omid", "amir", "roya" ,"ehsan"]

برای دسترسی به هر عنصر از لیست، با داشتن موقعیت یا اندیس آن عنصر و آوردن اندیس در جلوی نام متغیر لیست، به عنصر مورد نظرمان دسترسی خواهیم داشت.
یعنی قطعه کد زیر به ما عنصری که در اندیس شماره 3 قرار دارد با خروجی می‌دهد؛ یعنی چهارمین عنصر در لیست که معادل roya  است.

lst[3]

به همین سادگی خواهیم توانست به تمام عناصر درون یک لیست دسترسی پیدا کنیم.
توجه کنید که اندیس یک مقدار از نوع عددی صحیح (integer) است. در نتیجه فراخوانی اندیس اعشاری یا رشته‌ای ما را با خطا مواجه خواهد کرد.
در لیست بالا ما پنج عنصر داریم. بازه اندیس‌های ما از 0  تا 4  خواهد بود. وارد کردن عددی بزرگ‌تر از 4 ما را با خطای اندیس (IndexError) مواجه خواهد کرد.

اندیس منفی لیست در پایتون

زبان برنامه نویسی پایتون تعریف اندیس برای اعضای یک لیست را امکان‌پذیر کرده است. به این‌صورت که آخرین عنصر هر لیست دارای اندیس -1، عنصر یکی مانده به آخر -2 و همینطور تا عنصر اول…
به کمک اندیس منفی در پایتون می‌توانیم به عناصر یک لیست از انتهای آن دسترسی داشته باشیم.
بنابراین برای چاپ اسم ehsan در لیست مفروض خود، کدی شبیه به کد زیر خواهیم داشت.

print( lst[-1] )
 Output: ehsan#

سوال: با توجه به این توضیحات، به نظرتان بازه اندیس منفی مجاز در پایتون در یک لیست با n عضو چیست؟

 

 

دسترسی به بخشی از لیست (برش زدن List)

 

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

lst = ['k', 'a', 'b', 'i', 'r', 'a', 'p', 'p']

یک لیست با اندازه 8. اگر بخواهیم فقط به بخشی از این لیست دسترسی داشته باشیم باید چگونه عمل کنیم؟
ویژگی slicing  یا برش زدن list این امکان را به ما می‌دهد که فقط به بخشی از یک لیست دسترسی داشته باشیم.

 

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

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

lst[3:7]
Output: ['i', 'r', 'p', 'p'] #

در قطعه کد بالا، عناصری که اندیس آن‌ها در بازه 3  تا 7 بود به ما برگردانده شد. توجه کنید که بازه اندیس‌ها چگونه تعریف شده است:
اگر بازه به صورت i:j  تعریف شود، این تعریف شامل عنصر i  تا عنصر j-1  خواهد شد و عنصر j در فراخوانی آورده نمی‌شود.
اگر هر یک از کران بازه را مشخص نکنیم، به طور پیش‌فرض تا انتهای آن را در نظر خواهد گرفت. یعنی برای فراخوانی اعضای لیست از عنصر دوم به بعد به صورت زیر عمل می‌کنیم.

lst[2:]
:Output#
 ['b', 'i', 'r', 'a', 'p', 'p'] #

در قطعه کد بالا، عناصر از اندیس دوم تا انتهای لیست به ما نمایش داده می‌شود.
همچنین برای اینکه به بخشی از لیست از ابتدا تا اندیسی مشخص دسترسی داشته باشیم، می‌توان به صورت زیر عمل کرد.

lst[:-2]
:Output#
['k', 'a', 'b', 'i', 'r', 'a'] #

در اینجا تمام عناصر موجود در لیست را از ابتدای آن تا به دو تا مانده به آخری (اندیس -2) را فراخوانی کرده‌ایم.

 

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

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

lst[2:-2]
: Output#
 ['b', 'i', 'r', 'a'] #


تکنیک: دسترسی دنباله‌ای به اعضای لیست (همراه با گام)

فرض کنید یک لیست از اعداد 1 تا 20 در اختیار دارید و می‌خواهید اعداد را دو در میان از آن خارج کنید. اولین راهی که احتمالاً به ذهنمان می‌رسد استفاده از حلقه‌های پایتونی (نظیر for) برای پیمایش لیست است.
این موضوع را جلوتر بررسی خواهیم کرد. اما این جا یک ویژگی جذاب در هنگام تعریف بازه لیست در پایتون را با هم یاد خواهیم گرفت.
همانطور که آموختید، با گذاشتن یک علامت دو نقطه (:) می‌توان بازه‌ای برای اندیس‌های لیست تعریف کرد. اگر پس از تعریف بازه اندیس، یک بار دیگر دو نقطه بگذاریم، خواهیم توانست گام حرکت خود را نیز مشخص کنیم.
یک لیست به نام numbers  ایجاد کرده و اعداد 1 تا 20 را در آن قرار می‌دهیم. سپس به صورت یک در میان، از ابتدا تا انتها آن حرکت می‌کنیم.

 

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]

numbers[::2]

:Output#
 [1, 3, 5, 7, 9, 11, 13, 15, 17, 19] #

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

numbers[4::3]
:Output#
 [5, 8, 11, 14, 17, 20] #

 

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

 

لیست تو در تو یا لیست چند بعدی در پایتون


عناصر لیست‌ها هر چیزی می‌توانند باشند؛ از عدد و رشته گرفته تا یک لیست دیگر! بنابراین اگر عناصر یک لیست، یک لیست دیگر باشد، لیست‌های تو در تو (Nested List)  را خواهیم داشت.
فرض کنید یک لیست داریم که اطلاعات یک دانشجو را نگهداری می‌کند. می‌خواهیم شناسه  (id)، اسم و کلیه نمرات او را داشته باشیم.

student = [6214, "Mitra", [18, 17.2, 19.5, 16, 20, 19.9, 20]]

عنصر سوم این لیست، خودش یک لیست است. به همین صورت می‌توان لیست‌های چند سطحی را نیز ایجاد کرد.

تعریف ماتریس در پایتون

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

[ [ ], [ ], [ ] ] =mtrx = 

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

,logs = [ ['Mon', '06/22', 'sina', 12]
        , ['Tue', '06/23', 'ehsan', 7]             
        , ['Wed', '06/24', 'roya', 10]             
       [  ['Wed', '06/24', 'sina', 5 ]             

کار با عناصر لیست

علاوه بر دسترسی به عناصر یک لیست، نیاز به وارد کردن، خارج کردن یا تغییر داده‌ها در لیست خواهیم داشت.
برای هر کدام از این کارها روش‌ها یا توابع مختلفی در پایتون وجود دارد. در ادامه به مهم‌ترین و کاربردی‌ترینِ آن‌ها را بررسی می‌کنیم.
افزودن عنصر جدید به لیست
برای افزودن یک عنصر جدید به لیست فعلی، سه روش وجود دارد. در دو روش اول، عنصر به انتهای لیست اضافه می‌شود؛ اما به کمک روش سوم می‌توانیم عنصر را در اندیس دلخواه خود قرار دهیم.
لیست nums  را با سه مقدار اولیه ایجاد کرده و سپس به آن عناصری را اضافه می‌کنیم.

nums = [32, 15, 20]

 

1. افزودن عنصر جدید به لیست با تابع append

با صدا زدن تابع ()append  روی لیست، مقدار ورودی خود را به عنوان عنصر جدید در انتهای لیست درج می‌کند. این متد صرفاً یک ورودی گرفته و نوع داده‌ای آن اهمیتی ندارد.

nums.append(11)

print(nums)
:Output#
 [32, 15, 20, 11] #

nums.append(73)

print(nums)
:Output#
 [32, 15, 20, 11, 73] #

 

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

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

nums = [32, 15, 20]
nums = nums + [25]

به همین سادگی، عدد 25  را به انتهای لیست nums  اضافه کردیم!

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

print(nums)
:Output#
 [32, 15, 20, 25] #

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

nums = nums + [68, 23, 8]
print(nums)
: Output#
 [32, 15, 20, 25, 68, 23, 8] #

 

تکنیک: خلاصه کردن عملیات جمع

همانطور که احتمالاً می‌دانید، به جای عبارت x = x + 3  می‌توانیم بنویسیم:  x += 3. این قضیه برای جمع بین دو لیست نیز برقرار است.
یعنی دو خط کد زیر معادل یکدیگرند.

nums = nums + [25]
nums += [25]

 

3. تابع insert

تابع ()insert  روی لیست صدا زده شده و دو ورودی می‌گیرد:

آرگومان اول: شماره ایندکس مورد نظر ما (به صورت عدد صحیح integer)
آرگومان دوم: عنصر مورد نظر برای افزودن به لیست

برای شماره ایندکس وارد شده دو حالت وجود دارد:

1. ایندکس خارج از محدوده و اندازه لیست است؛ در این‌صورت عنصر در انتهای لیست اضافه خواهد شد.
2. ایندکس داخل بازه ایندکس‌های فعلی است؛ عنصر در خانه مورد نظر درج شده و عنصر فعلی این خانه و خانه‌های بعد از آن یکی به سمت راست شیفت داده می‌شوند.

nums = [32, 15, 20]
nums.insert(1, 45)
print(nums)
 [32, 45, 15, 20] #

nums.insert(100, 65)
print(nums)
 [32, 45, 15, 20, 65] #

 

حذف عنصر از لیست در پایتون

وقتی می‌خواهیم مقداری را از لیست حذف کنیم، دو حالت وجود دارد.

ایندکس عنصر مورد نظر را می‌دانیم.
مقدار عنصر مورد نظر را می‌دانیم.


برای هر یک از این حالات دو دستور متفاوت را معرفی می‌کنم. از هر کدام می‌توانید در جای مناسب خود استفاده کرده و عنصر مورد نظرتان را از لیست حذف کنید.


حذف عنصر با ایندکس به کمک دستور del


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


lst = ['k', 'a', 'b', 'i', 'r', 'a', 'p', 'p']
del lst[3]
print(lst)
 ['k', 'a', 'b', 'i', 'r', 'a', 'p', 'p'] #

del lst
print(lst)

:Traceback (most recent call last) #
File "<pyshell#79>", line 1, in <module>#
print(lst) #
NameError: name 'lst' is not defined#


در خط دوم قطعه کد بالا، اقدام به حذف عنصر موجود در ایندکس 3 لیست (معادل با عنصر  z) کردیم. همانطور که در نتیجه مشاهده می‌کنید، این عنصر از درون لیست حذف شده است.
در خط ششم، کل متغیر لیست را حذف کرده‌ایم. پس از اقدام برای چاپ لیست، با خطای عدم تعریف متغیر در پایتون رو به رو می‌شویم.


استفاده از متد remove برای حذف عنصر از لیست


این متد بر روی لیست صدا زده می‌شود و یک ورودی می‌گیرد. آنچه که به عنوان ورودی گرفته را در لیست جستجو کرده و اولین موردی که مطابقت داشت را حذف می‌کنید.
در لیست زیر، ما دو بار حرف a را داریم. با صدا زدن متد remove('a') اولین موردی که در لیست پیدا می‌شود (یعنی ایندکس 1) حذف خواهد شد.


lst = ['k', 'a', 'b', 'i', 'r', 'a', 'p', 'p']
lst.remove('a')
print(lst)
 ['k', 'b', 'i', 'r', 'a', 'p', 'p'] #


تغییر عنصر در لیست


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


lst = ["sara", "omid", "amir", "roya" ,"ehsan"]
"lst[2] = "hamed
print(lst)
 ['sara', 'omid', 'hamed', 'roya', 'ehsan'] #


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


nums = [15, 24, 60]
nums[1] += 2

print(nums)
 [15, 26, 60] #


جستجو در لیست


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


nums = [15, 24, 60, 55, 74, 33]


می‌خواهیم بررسی کنیم آیا اعداد 24 و 77 درون این لیست وجود دارند یا خیر؟
در صورتی که هر کدام از آن اعداد وجود داشت یک پیغام متناسب با آن در خروجی چاپ می‌کنیم.


:if 24 in nums
    print("24 is in python list!")

:if 77 in nums
    print("77 is in python list!")

:output#
! 24 is in python list#


به همین سادگی!
اگر یک لیست با مقادیر رشته‌ای داشتیم؛ باز هم نحوه کار به همین شکل می‌شد.


colros = ["red", "purple", "green", "blue", "yellow", "orange"]

:if "red" in colors and "blue" in colors
    print("A mix of these colors can be Violet!")

:output#
! A mix of these colors can be Violet#


جستجوی ایندکس عنصر در لیست


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


اگر مقدار درون لیست پیدا شود، شماره اندیس خانه مورد نظر را به عنوان خروجی به ما می‌دهد.
اگر مقدار مورد نظر دورن لیست وجود نداشته باشد، با خطایی از نوع ValueError  مواجه خواهیم شد.


با مدیریت خطای زمان اجرا در پایتون، خواهیم توانست به راحتی، علاوه بر جستجو، ایندکس خانه مورد جستجو را نیز پیدا کنیم.


names = ["sara", "omid", "amir", "roya" ,"ehsan"]

:try
    target = names.index("omid")
:except ValueError
    print("name not found!")

:result#
target = 1#


توابع مهم کار با لیست پایتون


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


اندازه لیست با تابع  len


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


names = ["sara", "omid", "amir", "roya" ,"ehsan"]
print(len(names))

: output#
5#


خارج کردن آخرین عنصر از لیست با متد pop


با کمک تابع ()pop  که روی لیست صدا زده می‌شود، می‌توانیم آخرین عنصر (عنصر موجود در خانه -1) را از آن خارج کنیم.
همزمان با خارج کردن این عنصر، تابع ()pop آن را برای ما باز می‌گرداند. در نتیجه خواهیم توانست آخرین عنصر را قبل از دور ریختن، درون متغیری ریخته یا با آن کار دیگری انجام دهیم.
در قطعه کد زیر روند کار با این متد را می‌بینید. ابتدا آخرین عضو موجود در لیست names را بیرون انداخته و چاپ می‌کنیم. سپس لیست را چاپ کرده تا نتیجه عملیات را مشاهده کنیم.


names = ["sara", "omid", "amir", "roya" ,"ehsan"]
print( names.pop() )
print( names )

: output#
ehsan#
 ['sara', 'omid', 'amir', 'roya'] #


برعکس کردن لیست با متد reverse (وارونه کردن)


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


names = ["sara", "omid", "amir", "roya" ,"ehsan"]
names.reverse()
print( names )

: output#
 ['ehsan', 'roya', 'amir', 'omid', 'sara'] #


تابع ()reverse  لیست را برعکس می‌کند و به عبارتی لیست اصلی از بین می‌رود. اگر فقط می‌خواهید لیست را وارونه در اختیار داشته باشید یا لیست فعلی را به صورت برعکس درون متغیر دیگری ذخیره کنید، از روش زیر استفاده کنید.
معکوس کردن لیست به صورت حرفه‌ای با گام منفی
حال که بحث از وارونه کردن یا معکوس کردن لیست در پایتون شد؛ اجازه دهید یک روش بسیار جالب و به کمک معلومات قبلی خود به شما بگویم.
در قسمت دسترسی به عناصر لیست، روشی برای حرکت با یک گام مشخص در لیست را آموختیم. اگر گام حرکت در لیست را برابر -1  قرار دهیم، حرکت ما وارونه خواهد شد!
در این صورت فقط به لیست برعکس شده دسترسی خواهیم داشت اما آن را برعکس نخواهیم کرد.


names = ["sara", "omid", "amir", "roya" ,"ehsan"]
print( names[::-1] )
print( names )

:output#
 ['ehsan', 'roya', 'amir', 'omid', 'sara'] #
 ['sara', 'omid', 'amir', 'roya', 'ehsan'] #


همانطور که می‌بینید به کمک این تکنیک، لیست برعکس را در خط دوم چاپ کردیم؛ اما لیست اصلی تغییری نکرده است.


حذف تمام عناصر لیست با clear


اگر از اعضای لیست خود خسته شده‌اید و می‌خواهید تمام اعضای آن را از صحنه برنامه‌تان حذف کنید، متد ()clear  برای شماست! 
با صدا زدن متد ()clearروی یک لیست، تمام اعضای آن حذف شده و در نهایت یک لیست خالی خواهید داشت.


names = ["sara", "omid", "amir", "roya" ,"ehsan"]
names.clear()
print( names )

: output#
 [ ]#


پیمایش List در پایتون


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


names = ["sara", "omid", "amir", "roya" ,"ehsan"]
: for i in range(0, 5)
    print( names[i] )


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


names = ["sara", "omid", "amir", "roya" ,"ehsan"]
:for i in range( len(names) )
    print( names[i] )


حرکت در لیست با for in


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


names = ["sara", "omid", "amir", "roya" ,"ehsan"]
:for name in names
    print("Hello " + name)


در حلقه موجود در این قطعه کد، در هر دور اجرای حلقه، مقدار موجود در تک تک خانه‌های لیست درون متغیر name  ریخته می‌شود.
از این متغیر در طول حلقه می‌توانیم استفاده کنیم؛ آن را چاپ کرده، مقایسه کرده و یا عملیات خاصی روی آن انجام دهیم.


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


لیست در پایتون یکی از پر کاربردترین ساختمان داده‌هایی است که در برنامه‌هایمان از آن استفاده می‌کنیم. اگر با زبان برنامه نویسی دیگری آشنا باشید، بهتر است بگویم لیست به نوعی یک آرایه در پایتون است؛ آرایه‌ای شگفت‌انگیز با امکانات فراوان. لیست‌ها روی نوع داده‌ای عناصر خود حساس نیستند و می‌توانند عناصری با نوع داده‌ای مختلف را درون خود جای دهند.
در این مقاله ابتدا به شیوه تعریف کردن لیست پرداختیم. سپس روش‌های دسترسی به عناصر لیست را با هم مرور کرده و یاد گرفتیم چگونه عنصری را به لیست اضافه یا از آن حذف کنیم. توانستیم در یک لیست جستجو کنیم و با توابع و متدهای مهم آن آشنا شدیم؛ توابعی چون محاسبه اندازه لیست، برعکس کردن لیست و خالی کردن لیست.
روش‌های پیمایش در لیست در پایتون را آموختیم. دو روش اصلی و پر کاربرد برای این کار وجود دارد؛ اول استفاده از ایندکس‌ها و دوم استفاده از عبارت کلیدی for in  در پایتون.
امیدواریم از این آموزش استفاده کرده باشید؛ سؤالات و نظرات خود را از طریق دیدگاه‌های آموزش با ما به اشتراک بگذارید.

0 نظر


لطفا وارد شوید و نظر خود را ثبت نمایید.

بهترین ها

  نام تعداد آزمون میزان موفقیت
Photo َAmeneh Darvishzadeh 1 100/00 %
Photo Mehrad Hashemi 1 100/00 %
Photo Noushmehr Norsobhi 1 100/00 %
Photo محمدحسین میرزایی 1 100/00 %
Photo مهدی حسین پور آقائی 1 100/00 %
Photo Farnoush Toghiany 21 98/36 %
Photo zahra namdari 46 98/21 %
Photo یاسمن محمدی پور 4 98/08 %
Photo Tara Mohammadi 3 96/43 %
Photo yasaman mohamadipur 51 95/86 %
Photo مهدی هنرمند 1 95/24 %
Photo محمدجواد ملائی اردستانی 3 94/44 %
Photo Arzhang Saberi 4 93/33 %
Photo Soheila Karimi 124 92/73 %
Photo aram farhmand 10 92/31 %
Photo یاشار اسکندری 98 91/14 %
Photo عباس پورمیدانی 1 90/00 %
Photo پریسا سلوکی شهرضایی 72 89/49 %
Photo ارشیا قلمکاری 33 89/23 %
Photo Matin Azimipour 30 88/17 %