لیست
از PyLearn.com، دانشنامهٔ آزاد.
| نکته ها و ترفند ها • ماژول ها و ابزار وابسته • نمونه پروژه و برنامه • پرسش و پاسخ |
فهرست مندرجات |
[ویرایش] لیست ها
لیست ها هم یک نوع داده ی چند قسمتی هستند لیست داده ای است که می توان یک یا چند داده از هر نوع را در آن قرار داد
>>>L=[ 'mahdy' , 20 , 1.2 ]
[ویرایش] دسترسی به داده های درون لیست
برخلاف Dictionary در لیست دیگر اندیس توسط برنامه نویس مشخص نمی شود اندیس داده ها در لیست از چپ به راست و از صفر به تعداد داده ها در لیست مشخص می شود
[ 'mahdy' , 20 , 1.2 ]
در مثال بالا رشته ی 'mahdy' با اندیس 0 و عدد 20 با اندیس 1 و عدد اعشاری 1.2 با اندیس 2 مشخص می شوند برای بدست آوردن داده ی یک اندیس کافی است فقط اندیس مورد نظر را درون [] جلوی نام لیست قرار دهیم
>>>L=[ 'mahdy' , 20 , 1.2 ] >>>L[1] 20
خوب همیشه لیست ما به این شکل نیست و شاید یک لیست درون لیست قرار داشته باشد و ما برای بدست آوردن داده ی درون لیستی که درون لیست دیگر قرار دارد باید از روش دیگری استفاده کنیم برای روشنتر شدن مطلب لطفا به مثال زیر توجه کنید
>>>L=[ 'mahdy' , 20 , [ 'ali' , 99 ] , 1.2] >>>L[2][0] 'ali'
خوب تو مثال بالا دیدید که اندیس L[2] ما به داده ای که خودش یک لیست هست رسوند و L[2][0] ما به داده ی درون لیست که خودش تو لیست هست رسوند.خوب حالا اگر چندین لیست تو در تو بودن دیگه باید بدونید چی کاری بکنید.
نکته1: اگر درون [] عبارت محاسبه ای قرار بگیرد ابتدا عبارت محاسبه شده و بعد بقیه کارها طبق روال پیش میرند نکته2:اگر اندیس قرار گرفته در [] در محدوده شماره ی اندیس ها نباشد پیغام خطا ظاهر می شود نکته3:از خواص لیست ها انتساب هر یک از داده های درون لیست به متغیرهایی است که همگی تشکیل یک لیست می دهند نکته4:در شماره گزاری اندیس ها درلیست برنامه نویس دخیل نیست بدین ترتیب که می توان از راست به چپ هم به داده ها درون لیست دسترسی داشت از -1 شروع شده و به صورت نزولی اندیسها شماره گزاری میشوند.البته انتخاب هر روش به دلخواه برنامه نویس است نکته5:فقط اپراتورهای + و* بر روی لیست ها تعریف شده اند که اپراتور+ بین یک لیست و یک لیست دیگر تعریف شده و اپراتور * بین یک لیست و عدد تعریف شده که نیازی به توضیح بیشتر نیست.
[ویرایش] دسترسی به مجموعه ای از داده های درون لیست
خوب شاید ما بخواهیم به چندتا از داده های درون لیست دسترسی داشته باشیم برای این کار به جای [] از [:] استفاده می کنیم به مثال زیر توجه کنید.
>>>L=[ 'mahdy' , 'ali' , 100 , 99 , 'reza' , 20 ] >>>L[1:5] ['ali', 100, 99, 'reza']
خوب دیدید که L[1:5] از داده ای که اندیسش 1 است تا ماقبل 5 را درون یک لیست قرار میدهد نکته1:اگر در سمت راست علامت : عددی بیشتر از محدوده قرار بگیرد یا عددی نوشته نشود پیغام خطایی ظاهر نمی شود بلکه تا آخرین خانه ی لیست در نظر گرفته می شود و برعکس. نکته2:اگر شماره طوری باشند که از چپ به راست آخرین داده برابر یا قبل از داده ی اولی باشد حاصل یک لیست تهی است .
>>>L=[ 'mahdy' , 'ali' , 100 , 99 , 'reza' , 20 ] >>>L[1:] [ 'ali' , 100 , 99 , 'reza' , 20 ] >>>L[1:1] []
[ویرایش] تغییر مقادیر درون لیست
خوب لیست ها از داده های تغییر پذیرند و می توان با استفاده از عمل انتساب (=) مقادیر یک لیست را تغییر داد
>>>L=[ 'mahdy' , 'ali' , 100 , 99 , 'reza' , 20 ] >>>L[1] = 'boys' >>>L[1] 'boys' >>>L ['mahdy' , 'boys' , 100 , 99 , 'reza' , 20 ]
[ویرایش] اضافه کردن داده در لیست
بدون استفاده از عملیات محاسباتی می توان داده ای را به لیست اضافه کرد
>>>L=[ 1 , 2 , 3 ] >>>L[3:3] = [4] >>>L [ 1 , 2 , 3 , 4 ]
[ویرایش] حذف داده از لیست
برای حذف داده می توانیم از عمل انتساب استفاده کنیم بدین ترتیب که داده را به [] انتساب بدهیم
>>>L=[ 1 , 2 , 3 , 4 ] >>>L[1:2] = [] >>>L [ 1 , 3 , 4 ]
نكته مهم در اين قسمت اين است كه L[1:2] تنها بخشي از ليست را حذف مي كند كه انديس آن 1 است . حال اگر بنويسم L[0:2] بخشهايي كه انديس آن 0 و 1 است حذف مي شود . يعني پارامترهاي ما از ابتدا تا قبل از انتها
با استفاده از دستور del می توان هر داده یا کل لیست را حذف کرد
متدهای مهم لیست (با فرض اینکه L لیست باشد)
| ۱ | L.append(x) | داده ی x را به انتهای لیست L اضافه کن |
| ۲ | L.remove(x) | داده ی x را از لیست L حذف کن |
| ۳ | L.index(x) | اندیس x در لیست L را برمی گرداند |
| ۴ | L.count(x) | تعداد دفعات تکرار x را در لیست L را برمی گرداند |
| ۵ | L.extend(x) | لیست x را با لیست L الحاق می کند |
| ۶ | L.insert(I,x) | داده ی x را درشماره اندیس I به لیست اضافه می کند |


