لیست در پایتون یکی از پر کاربردترین نوع دادهای است که تقریباً در تمام برنامههای خود از آن استفاده میکنیم. اگر بتوانیم در کار با لیست پایتون به مهارت کافی برسیم، روند برنامه نویسی ما سرعت بیشتری خواهد گرفت. همچنین خواهیم توانست کارهای بعضاً خارق العادهای انجام دهیم! در این مقاله به بررسی نوع داده List در پایتون، آموزش کار با آن، توابع مهم و تکنیکهای کاربردی کار با لیست خواهیم پرداخت.
اگر تا به حال حتی یک خط برنامه نویسی کرده باشید، حتماً برایتان سوال شده که چگونه میتوان تعداد بسیار زیادی داده را در برنامه نگهداری کرد؟ فرض کنید بخواهیم نمرات یک دانشجو را در برنامه خود وارد کرده و روی آن پردازشهایی انجام دهیم.
اگر بخواهیم برای هر درس این دانشجو یک متغیر در نظر بگیریم، برنامه بسیار پیچیده خواهد شد! از طرفی تعداد دروس دانشجو مشخص نیست و ما نمیدانیم چه تعداد متغیر باید در نظر بگیریم.
به کمک لیستها خواهیم توانست تعداد مقادیر زیادی را در یک متغیر نگه داشته و حتی روی آن عملیاتهای مختلفی را اجرا کنیم.
اگر با زبانهای برنامه نویسی مختلف کار کرده باشید، احتمالاً با آرایهها آشنایی دارید. در یک تعریف بسیار کلی میتوان لیست را یک نوع آرایه در پایتون دانست؛ آرایهای که طول آن متغیر بوده و عناصر آن میتوانند از انواع مختلف دادهای باشند.
لیست در پایتون
لیست یک ساختمان داده مهم در پایتون است. به کمک لیستها میتوانیم دنبالهای از دادهها را در یک متغیر ذخیره کرده و روی آنها عملیاتهای مختلفی را اجرا کنیم.
نوع دادهای لیست یکی از انواع داده مجموعهای یا Collections در این زبان محبوب است. لیست شامل مجموعهای از عناصر به صورت ترتیبی و قابل تغییر است. لیست در پایتون با کروشه (براکت یا bracket) به شکل []
مشخص میشود؛ به طوری که با علامت کروشه باز ]
لیست آغاز شده و تا علامت کروشه بسته [
ادامه مییابد.
هر عنصر درون لیست به وسیله کاما (ویرگول انگلیسی یا comma) به شکل ,
از یکدیگر جدا شده و میتواند از هر نوع داده دلخواهی باشد.
lst = ["Omid", 217, 22.5, "SabzDnaesh"]
در یک خط کد بالا، یک لیست با نام 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 = ['s', 'a', 'b', 'z', 'd', 'a', 'n', 'e', 's', 'h']
یک لیست با اندازه 10. اگر بخواهیم فقط به بخشی از این لیست دسترسی داشته باشیم باید چگونه عمل کنیم؟
ویژگی slicing یا برش زدن list این امکان را به ما میدهد که فقط به بخشی از یک لیست دسترسی داشته باشیم.
دسترسی به لیست با تعریف بازه اندیس
برای تعریف یک بازه اندیس در هنگام فراخوانی عناصر لیست، کافی است به جای وارد کردن یک شماره اندیس، بازه آن را مشخص کنیم. مشخص کردن بازه با علامت دو نقطه (:
) انجام میشود.
lst[3:7]
# Output: ['z', 'd', 'a', 'n']
در قطعه کد بالا، عناصری که اندیس آنها در بازه 3 تا 7 بود به ما برگردانده شد. توجه کنید که بازه اندیسها چگونه تعریف شده است:
اگر بازه به صورت i:j
تعریف شود، این تعریف شامل عنصر i
تا عنصر j-1
خواهد شد و عنصر j
در فراخوانی آورده نمیشود.
اگر هر یک از کران بازه را مشخص نکنیم، به طور پیشفرض تا انتهای آن را در نظر خواهد گرفت. یعنی برای فراخوانی اعضای لیست از عنصر دوم به بعد به صورت زیر عمل میکنیم.
lst[2:]
# Output:
# ['b', 'z', 'd', 'a', 'n', 'e', 's', 'h']
در قطعه کد بالا، عناصر از اندیس دوم تا انتهای لیست به ما نمایش داده میشود.
همچنین برای اینکه به بخشی از لیست از ابتدا تا اندیسی مشخص دسترسی داشته باشیم، میتوان به صورت زیر عمل کرد.
lst[:-2]
# Output:
# ['s', 'a', 'b', 'z', 'd', 'a', 'n', 'e']
در اینجا تمام عناصر موجود در لیست را از ابتدای آن تا به دو تا مانده به آخری (اندیس -2) را فراخوانی کردهایم.
تکنیک: دسترسی به میان لیست در پایتون
همانطور که احتمالاً تا به اینجای کار برداشته کردهاید، میتوانیم از اندیسهای مثبت و منفی در هنگام برش دادن لیست استفاده کنیم.
اگر این دو نوع اندیس را به طور همزمان استفاده کنیم، مخواهیم توانست خروجیهای جالب و شگفتانگیزی از لیست خود بگیریم!
برای مثال، فرض کنید در لیست دلخواه خود، میخواهیم دو عنصر اول و دو عنصر آخر لیست را حذف کرده و بقیه را نشان دهیم. برای این کار به راحتی کد زیر عمل خواهیم کرد. به این روش میتوانید لیست را به هر صورتی که مایلید برش دهید!
lst[2:-2]
# Output:
# ['b', 'z', 'd', 'a', 'n', 'e']
تکنیک: دسترسی دنبالهای به اعضای لیست (همراه با گام)
فرض کنید یک لیست از اعداد 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)
- آرگومان دوم: عنصر مورد نظر برای افزودن به لیست
برای شماره ایندکس وارد شده دو حالت وجود دارد:
- ایندکس خارج از محدوده و اندازه لیست است؛ در اینصورت عنصر در انتهای لیست اضافه خواهد شد.
- ایندکس داخل بازه ایندکسهای فعلی است؛ عنصر در خانه مورد نظر درج شده و عنصر فعلی این خانه و خانههای بعد از آن یکی به سمت راست شیفت داده میشوند.
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 = ['s', 'a', 'b', 'z', 'd', 'a', 'n', 'e', 's', 'h']
del lst[3]
print(lst)
# ['s', 'a', 'b', 'd', 'a', 'n', 'e', 's', 'h']
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 = ['s', 'a', 'b', 'z', 'd', 'a', 'n', 'e', 's', 'h']
lst.remove('a')
print(lst)
# ['s', 'b', 'z', 'd', 'a', 'n', 'e', 's', 'h']
تغییر عنصر در لیست
برای تغییر مقدار موجود در ایندکس مورد نظر، میتوان پس از فراخوانی آن خانه از لیست، اقدام به تغییر آن کنیم. این کار با علامت انتصاب یا =
انجام میشود.
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
در پایتون.
امیدواریم از این آموزش استفاده کرده باشید؛ سؤالات و نظرات خود را از طریق دیدگاههای آموزش با ما به اشتراک بگذارید.