لیست

از 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 به لیست اضافه می کند


در حال تکمیل توسط pyth0n