شنبه ۲۹ دي ۱۴۰۳
Tut24 آموزش برنامه نویسی و مجله تخصصی فناوری ورود/عضویت

آموزش پایتون - لیست‌ها

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

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

لیست‌های پایتون

لیست یک نوع داده چند منظوره در پایتون است که می‌توان آن را به صورت لیستی از مقادیر جداشده با کاما (آیتم‌ها) بین براکت‌های مربعی نوشت. مهم‌ترین نکته درباره‌ی لیست‌های پایتون این است که آیتم‌های موجود در آن ضوروت ندارد نوع داده یکسانی داشته باشند.

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

list1 = ['physics', 'chemistry', 1997, 2000];
list2 = [1, 2, 3, 4, 5 ];
list3 = ["a", "b", "c", "d"]

اندیس‌های لیست از 0 شروع می‌شوند و لیست‌ها قابل برش، ادغام و ... هستند.

دسترسی به مقادیر در لیست‌ها

برای دسترسی به مقادیر در لیست‌ها، از براکت‌های مربعی همراه با اندیس یا اندیس‌ها برای به دست آوردن مقدار موجود در آن اندیس استفاده کنید. به عنوان مثال −

list1 = ['physics', 'chemistry', 1997, 2000];
list2 = [1, 2, 3, 4, 5, 6, 7 ];
print("list1[0]: ", list1[0])
print("list2[1:5]: ", list2[1:5])

هنگام اجرای کد فوق، نتیجه‌ی زیر تولید می‌شود −

list1[0]:  physics
list2[1:5]:  [2, 3, 4, 5]

به‌روزرسانی لیست‌ها

شما می‌توانید یک یا چند عنصر از لیست را با مقداردهی اندیس مورد نظر به‌روزرسانی کنید، و همچنین می‌توانید با استفاده از متد append() عناصر را به یک لیست اضافه کنید. به عنوان مثال −

list = ['physics', 'chemistry', 1997, 2000];
print("Value available at index 2 : ")
print(list[2])
list[2] = 2001;
print("New value available at index 2 : ")
print(list[2])

توجه − متد append() در بخش بعدی بررسی خواهد شد.

هنگام اجرای کد فوق، نتیجه‌ی زیر تولید می‌شود −

Value available at index 2 :
1997
New value available at index 2 :
2001

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

برای حذف یک عنصر از لیست، می‌توانید از دستور del استفاده کنید اگر دقیقاً بدانید کدام عنصر(ها) را حذف می‌کنید یا از متد remove() استفاده کنید اگر ندانید. به عنوان مثال −

list1 = ['physics', 'chemistry', 1997, 2000];
print(list1)
del list1[2];
print("After deleting value at index 2 : ")
print(list1)

هنگام اجرای کد فوق، نتیجه‌ی زیر تولید می‌شود −

['physics', 'chemistry', 1997, 2000]
After deleting value at index 2 :
['physics', 'chemistry', 2000]

توجه − متد remove() در بخش بعدی بررسی خواهد شد.

عملیات پایه‌ای لیست

لیست‌ها به عملگرهای + و * به همان شکل رشته‌ها واکنش نشان می‌دهند؛ به این معنی که ترکیب و تکرار در اینجا همانطور که در رشته‌ها است انجام می شود، با این تفاوت که نتیجه یک لیست جدید است و نه یک رشته.

در واقع، لیست‌ها به همه‌ی عملیات عمومی دنباله که در درس قبل بر روی رشته‌ها استفاده کردیم، پاسخ می‌دهند.

عبارت پایتون نتایج توضیحات
len([1, 2, 3]) 3 طول
[1, 2, 3] + [4, 5, 6] [1, 2, 3, 4, 5, 6] ادغام
['Hi!'] * 4 ['Hi!', 'Hi!', 'Hi!', 'Hi!'] تکرار
3 in [1,2,3] True عضویت
for x in [1, 2, 3]: print x, 1 2 3 تکرار

اندیس‌گذاری، برش و ماتریس‌ها

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

فرض کنید ورودی زیر را داشته باشیم −

L = ['spam', 'Spam', 'SPAM!']

 

عبارت پایتون نتایج توضیحات
L[2] SPAM! اندیس‌ها از صفر شروع می‌شوند
L[-2] spam منفی: شمارش از راست
L[1:] ['Spam', 'Spam!'] برش برای بخش‌ها

توابع و متدهای تعبیه‌شده لیست

پایتون شامل توابع لیست زیر است −

شماره تابع با توضیحات
1 cmp(list1, list2)

عناصر هر دو لیست را مقایسه می‌کند.

2 len(list)

طول کل لیست را برمی‌گرداند.

3 max(list)

مقدار بیشینه را از لیست برمی‌گرداند.

4 min(list)

مقدار کمینه را از لیست برمی‌گرداند.

5 list(seq)

یک تاپل را به لیست تبدیل می‌کند.

پایتون شامل متدهای لیست زیر است

شماره متدها با توضیحات
1 list.append(obj)

داده ی obj را به لیست اضافه می‌کند

2 list.count(obj)

تعداد تکرار obj را در لیست برمی‌گرداند

3 list.extend(seq)

محتویات seq را به لیست اضافه می‌کند

4 list.index(obj)

کمترین اندیسی را در لیست که obj در آن ظاهر می‌شود برمی‌گرداند

5 list.insert(index, obj)

داده obj را در اندیس index به لیست اضافه می‌کند

6 list.pop(obj=list[-1])

آخرین داده یا obj را از لیست حذف و برمی‌گرداند

7 list.remove(obj)

داده ی obj را از لیست حذف می‌کند

8 list.reverse()

داده های لیست را از نظر محل برعکس می‌کند

9 list.sort([func])

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