List
لیست (List) از عمومیترین نوع دادههای پایتون است. یک لیست به صورت دنبالهای از عناصر درون براکت، که با ویرگول از هم جدا میشوند، تعریف میشود. به هر عنصر لیست یک عدد به عنوان موقعیت یا اندیس آن، نسبت داده میشود. اولین اندیس 0 است، اندیس دوم، 1 و به همین ترتیب دیگر اندیسها مشخص میشوند. عملیات مشخصی را میتوانید بر روی انواع لیستها انجام دهید. این عملیات شامل، اندیس دهی، تکه کردن (slicing)، اضافه کردن، تکرار کردن و بررسی عضویت هستند. علاوه بر این پایتون دارای توابع توکار برای یافتن اندازه List و یافتن کوچکترین و بزرگترین عنصر آن میباشد. نکته مهم در مورد لیست این است که عناصر یک لیست لازم نیست که از یک نوع باشند:
list1 = ['physics', 'chemistry', 1997, 2000]; list2 = [1, 2, 3, 4, 5]; list3 = ["a", "b", "c", "d"]
برای دسترسی به مقادیر درون لیست در یک موقعیت مشخص یا در یک بازه، از براکت به همراه اندیس یا اندیسهای مربوطه استفاده میشود. برای مثال:
1: list = [1, 2, 3, 4, 5, 6, 7] 2: 3: print(list[2]) 4: print(list[:5]) 5: print(list[2:4]) 6: print(list[4:]) 7: print(list[:-5]) 8: print(list[-5:])
3 [1, 2, 3, 4, 5] [3, 4] [5, 6, 7] [1, 2] [3, 4, 5, 6, 7]
در کد بالا، خط 4، مقادیری که اندیس آنها از 0 تا 3 است و خط 5، مقادیری که اندیس آنها 2 و 3 است را چاپ می کند. عدد منفی به معنای شمارش آیتم ها از آخر به اول است. اندیس آیتم ها از آخر به اول از 1- شروع می شود. یعنی اندیس 1- به 7، اندیس 2- به 6 و … تعلق گیرد. پس با این تفاسیر، خط 7 به معنای چاپ آیتم های List از اول تا آیتمی که اندیس آن 5- و خط 8 هم به معنای چاپ از آیتمی با اندیس 5- تا آخرین آیتم می باشد. در پایتون توابع توکار زیر، برای کار بر روی لیستها وجود دارد:
تابع | شرح |
cmp(list1, list2) | اعضای دو لیست را مقایسه میکند. |
len(list) | تعداد اعضای لیست را مشخص میکند. |
max(list) | بزرگترین عضو درون لیست را بر میگرداند. |
min(list) | کوچکترین عضو درون لیست را بر میگرداند. |
list(seq) | یک لیست را از روی یک چندتایی ایجاد میکند. |
به مثال زیر توجه کنید:
list = [1, 2, 3, 4, 5, 6, 7] print(min(list)) print(len(list))
1 7
در کد بالا یک لیست تعریف کرده و با استفاده از توابع ()min و ()len، کوچکترین عضو و همچنین طول لیست را به دست آوردهایم. شی لیست در پایتون، خود نیز دارای توابع زیر است:
تابع | شرح |
list.append(obj) | شیء obj را به لیست الحاق میکند. |
list.count(obj) | تعداد دفعات تکرار شیء obj درون لیست را مشخص میکند. |
list.extend(seq) | عناصر درون seq را به انتهای لیست اضافه میکند. |
list.index(obj) | اندیس اولین شیء obj درون لیست را بر میگرداند. |
list.insert(index, obj) | شیء obj را در مکان index به لیست اضافه میکند. |
list.pop(obj=list[-1]) | عنصر آخر یا شیء obj را از لیست حذف کرده و بر میگرداند. |
list.remove(obj) | شیء obj را از لیست حذف میکند. |
list.reverse() | عناصر را درون لیست معکوس میکند. |
list.sort([func]) | عناصر لیست را مرتب میکند. از تابع func در صورت ارسال، برای مقایسه استفاده میکند. |
مثلاً اگر بخواهیم به یک لیست، یک عنصر اضافه کنیم میتوانیم با استفاده از متد ()append این کار را انجام دهیم:
list = [1, 2, 3, 4, 5, 6, 7]
list.append(8)
print(list)
[1, 2, 3, 4, 5, 6, 7, 8]
و یا برای معکوس کردن لیست از متد ()reverse به صورت زیر استفاده میشود:
list = [1, 2, 3, 4, 5, 6, 7]
list.reverse()
print(list)
[7, 6, 5, 4, 3, 2, 1]
لیست ها را با عملگر + می توان با هم جمع کرد و یک لیست واحد تولید کرد:
list1 = [1, 2, 3]
list2 = [4, 5, 6, 7]
print(list1 + list2)
[1, 2, 3, 4, 5, 6, 7]