لیست دقیقاً همان چیزی است که به نظر می رسد ، ظرف حاوی اشیاء مختلف پایتون ، که می توانند عدد صحیح ، کلمات ، مقادیر و غیره باشد. لیست معادل آرایه در سایر زبان های برنامه نویسی است. توسط براکت های مربع نشان داده می شود (و این یکی از صفاتی است که آن را از تاپل ها جدا می کند ، که توسط پرانتز از هم جدا شده اند). لیست ها قابل تغییر اند، یعنی می توانند اصلاح یا به روز شوند؛ برخلاف تاپل ها ، که تغییر ناپذیر هستند.
در این آموزش پایتون یاد خواهید گرفت:
- لیست پایتون چیست؟
- نمونه هایی از لیست های پایتون
- دسترسی به مقادیر موجود در لیست ها
- برش لیست
- به روزرسانی لیست ها
- حذف عنصر از لیست
- افزودن عنصر به لیست
- توابع داخلی لیست (متد)
- حلقه روی لیست
- خلاصه لیست
نمونه هایی از لیست های پایتون:
لیست های پایتون می توانند یکدست باشند ، به این معنی که شامل شی از یک نوع باشند. یا یکدست نباشند ، یعنی شامل انواع مختلفی از اشیاء.
نمونه هایی از لیست های یکدست عبارتند از:
list of integers = [1, 2, 3, 8, 33]
list of animals = [‘dog’, ‘cat’, ‘goat’]
list of names = [‘John’, ‘Travis’, ‘Sheila’]
list of floating numbers = [2.2, 4.5, 9.8, 10.4]
نمونه هایی از لیست های غیر یکدست عبارتند از:
[۲, ‘cat’, 34.33, ‘Travis’]
[۲٫۲۲, ۳۳, ‘pen’]
دسترسی به مقادیر موجود در لیست ها
برای دسترسی به مقادیر موجود در لیست ها می توان از شاخص اشیاء موجود در لیست ها استفاده کرد. شاخص در لیست های پایتون به موقعیت یک عنصر در لیست مرتب شده اشاره دارد. مثلا:
list = [3, 22, 30, 5.3, 20]
- مقدار اول در لیست فوق ، ۳ ، دارای شاخص ۰ است.
- مقدار دوم ، ۲۲ ، دارای شاخص ۱ است.
- مقدار سوم ، ۳۰ ، دارای شاخص ۲ است.
برای دسترسی به هر یک از مقادیر موجود در لیست ، از موارد زیر استفاده کنید:
list[0] to access 3
list[1] to access 22
list[2] to access 30
list[3] to access 5.3
list[4] to access 20
با استفاده از شاخص -۱ به آخرین عضو یک لیست نیز می توان دسترسی پیدا کرد. مثلا،
list[-1] = 20
برش لیست
برش لیست روش تقسیم لیست به زیر مجموعه است و از شاخص های اشیاء لیست برای این کار استفاده می شود. به مثال زیر توجه کنید. از لیست بالا استفاده شده است ؛
list[:] = [3, 22, 30, 5.3, 20] (all the members of the list];
list[1:3] = [22, 30] (members of the list from index 1 to index 3, without the member at index 3);
list[:4] = [3, 22, 30, 5.3] (members of the list from index 0 to index 4, without the member at index 4)
list[2:-1] = [30, 5.3] (members of the list from index 2, which is the third element, to the second to the last element in the list, which is 5.3).
لیست های پایتون منحصر به فرد است ، یعنی آخرین شاخص در طول برش لیست معمولاً نادیده گرفته می شود.
list[2:-1] = [30, 5.3]
همین مورد در مورد سایر نمونه های برش لیست در بالا ذکر شده است.
به روزرسانی لیست ها
فرض کنید
list = [physics, chemistry, mathematics]
را دارید و می خواهید آن را به [biology, chemistry, mathematics] تغییر دهید ( تغییر عضو شاخص ۰ ). با اختصاص دادن مقدار به شاخص به راحتی می توان این کار را انجام داد.
list = [physics, chemistry, mathematics]
list[0] = biology
print(list)
خروجی: [biology, chemistry, mathematics]
کد بالا عضو شاخص ۰ (physics) را با مقدار جدیدی که می خواهید (biology) جایگزین می کند و می تواند برای هر عضو یا زیر مجموعه ای از لیستی که می خواهید تغییر دهید انجام شود.
مثال دیگر؛ فرض کنید لیستی دارید به نام integers و شامل اعداد [۲ ، ۵ ، ۹ ، ۲۰ ، ۲۷]. برای جایگزینی ۵ با ۱۰ ، می توانید این کار را انجام دهید:
integers = [2, 5, 9, 20, 27]
integers[1] = 10
print(integers)
>>> [2, 10, 9, 20, 27]
برای جایگزین کردن آخرین عضو لیست integers ، که ۲۷ است ، با عدد ۵/۳۰ ، از موارد زیر استفاده می کنید:
integers = [2, 5, 9, 20, 27]
integers[-1] = 30.5
print(integers)
>>> [2, 5, 9, 20, 30.5]
حذف عنصر از لیست
۳ روش در پایتون برای حذف عناصر لیست وجود دارد: ()list.remove () ، list.pop و عملگر del. روش remove ، عنصر خاص را به عنوان یک آرگومان حذف می کند ، در حالی که pop و del ، شاخص این عنصر را حذف می کنند بجای آرگومان. مثلا:
list = [3, 5, 7, 8, 9, 20]
برای حذف ۳ (عنصر اول) از لیست ، می توانید از این موارد استفاده کنید:
- list.remove(3)
- list.pop[0]
- del list[0]
برای حذف ۸ که شاخص ۳ را دارد، می توانید از موارد زیر استفاده کنید:
- list.remove(8)
- list.pop[3]
افزودن عنصر به لیست
برای افزودن عنصر به لیست ، از متد append استفاده می شود که عنصر را به انتهای لیست اضافه می کند.
مثلا:
list_1 = [3, 5, 7, 8, 9, 20]
list_1.append(3.33)
print(list_1)
>>> list_1 = [3, 5, 7, 8, 9, 20, 3.33]
list_1.append(“cats”)
print(list_1)
>>> list_1 = [3, 5, 7, 8, 9, 20, 3.33, “cats”]
توابع داخلی لیست (متد)
در زیر لیستی از توابع و متد های داخلی با توضیحات آنها وجود دارد:
- (len(list : طول لیست را به عنوان خروجی می دهد. مثلا:
numbers = [2, 5, 7, 9]
print(len(numbers))
>>> 4
- (max (list: آیتم با حداکثر مقدار در لیست را باز می گرداند. مثلا:
numbers = [2, 5, 7, 9]
print(max(numbers))
>>> 9
- (min (list: آیتم با حداقل مقدار در لیست را باز می گرداند. مثلا:
numbers = [2, 5, 7, 9]
print(min(numbers))
>>> 2
- (list (tuple : یک شیء tuple را به یک لیست تبدیل می کند. مثلا؛
animals = (cat, dog, fish, cow)
print(list(animals))
>>> [cat, dog, fish, cow]
- (list.append (element: عنصر را به لیست اضافه می کند. مثلا؛
numbers = [2, 5, 7, 9]
numbers.append(15)
print(numbers)
>>> [2, 5, 7, 9, 15]
- (list.pop (index : عنصر موجود در شاخص مشخص شده را از لیست حذف می کند. مثلا؛
numbers = [2, 5, 7, 9, 15]
numbers.pop(2)
print(numbers)
>>> [2, 5, 9, 15]
- (list.remove (element : عنصر را از لیست حذف می کند. مثلا؛
values = [2, 5, 7, 9]
values.remove(2)
print(values)
>>> [5, 7, 9]
- ()list.reverse : اشیاء لیست را برعکس می کند. مثلا؛
values = [2, 5, 7, 10]
values.reverse()
print(values)
>>> [10, 7, 5, 2]
- (list.index (element : برای بدست آوردن مقدار شاخص یک عنصر در لیست. مثلا؛
animals = [‘cat’, ‘dog’, ‘fish’, ‘cow’, ‘goat’]
fish_index = animals.index(‘fish’)
print(fish_index)
>>> 2
- (sum (list : برای بدست آوردن جمع تمام مقادیر موجود در لیست ، اگر مقادیر همه اعداد (اعداد صحیح یا اعشاری) باشند. مثلا؛
values = [2, 5, 10]
sum_of_values = sum(values)
print(sum_of_values)
>>> 17
اگر لیست شامل عنصری باشد که عددی نباشد مثلا string باشد ، متد sum کار نمی کند و خطای زیر را می دهد:
“TypeError: unsupported operand type(s) for +: ‘int’ and ‘str'”
- ()list.sort : ترتیب لیستی از اعداد صحیح ، float یا رشته ها به ترتیب صعودی یا نزولی. مثلا:
values = [1, 7, 9, 3, 5]
# To sort the values in ascending order:
values.sort()
print(values)
>>> [1, 3, 5, 7, 9]
مثال دیگر
values = [2, 10, 7, 14, 50]
# To sort the values in descending order:
values.sort(reverse = True)
print(values)
>>> [50, 14, 10, 7, 2]
لیستی از رشته ها نیز می توانند بر اساس حروف الفبا یا طول رشته ها مرتب شود. مثلا؛
# to sort the list by length of the elements
strings = [‘cat’, ‘mammal’, ‘goat’, ‘is’]
sort_by_alphabet = strings.sort()
sort_by_length = strings.sort(key = len)
print(sort_by_alphabet)
print(sort_by_length)
>>> [‘cat’, ‘goat’, ‘is’, ‘mammal’]
[‘is’, ‘cat’, ‘goat’, ‘mammal’]
می توانیم لیست مشابه را بر اساس حروف الفبا با استفاده از ‘strings مرتب کنیم.
حلقه روی لیست
حلقه زدن روی لیست ها می تواند دقیقاً مانند هر تابع حلقه دیگر در پایتون انجام شود. با این کار می توان یک متد را بر روی چندین عنصر یک لیست به طور همزمان اجرا کرد. مثلا:
list = [10, 20, 30, 40, 50, 60, 70]
اجرای حلقه for روی تمام عناصر لیست و افزودن ۱۰ به هر عنصر:
for elem in list:
elem = elem + 5
print(elem)
>>>>15
۲۵
۳۵
۴۵
۵۵
۶۵
۷۵
اجرای حلقه روی سه عنصر اول لیست ، و حذف آن ها.
for elem in list[:3]:
list.remove(elem)
>>>list = [40, 50, 60, 70]
برای اجرای سوم حلقه (شاخص ۲) به آخرین عنصر در لیست ، و اضافه کردن آن ها در لیست جدید به نام new_list:
new_list = []
for elem in list[2:]:
new_list.append(elem)
print(“New List: {}”.format(new_list))
Output:
New List: [30, 40, 50, 60, 70]
به این ترتیب ، هر راه ، متد یا تابعی می تواند روی اعضای یک لیست برای انجام یک عملیات خاص اعمال شود. می توانید روی تمام اعضای لیست حلقه بسازید ، یا با استفاده از برش لیست ، روی زیر مجموعه ای از لیست حلقه بسازید.
خلاصه لیست
خلاصه لیست ، توابعی هستند که با استفاده از توالی هایی که قبلاً ایجاد شده اند ، برای ایجاد توالی های جدید (مانند لیست ها ، لغت نامه ها و غیره) استفاده می شوند. آن ها به کاهش حلقه های طولانی تر کمک می کنند و کد را خواناتر می کنند.
مثلا؛ فرض کنید می خواهید لیستی شامل مربع تمام اعداد ۱ تا ۹ بسازید:
list_of squares = []
for int in range(1, 10):
square = int ** 2
list_of_squares.append(square)
print(list_of_squares)
List_of_squares using for loop:
[۱, ۴, ۹, ۱۶, ۲۵, ۳۶, ۴۹, ۶۴, ۸۱]
انجام همان کار با خلاصه لیست:
list_of_squares_2 = [int**2 for int in range(1, 10)]
print(‘List of squares using list comprehension: {}’.format(list_of_squares_2))
Output using list comprehension:
[۱, ۴, ۹, ۱۶, ۲۵, ۳۶, ۴۹, ۶۴, ۸۱]
همانطور که در بالا مشاهده شد ، نوشتن کد با استفاده از خلاصه لیست بسیار کوتاه تر از استفاده سنتی از حلقه های for است ، و همچنین سریعتر. این تنها یک نمونه استفاده از خلاصه لیست به جای حلقه های for است ، اما می تواند در بسیاری از مکان هایی که حلقه for نیز استفاده می شود ، تکرار و استفاده شود. گاهی اوقات ، استفاده از حلقه for گزینه بهتری است ، به خصوص اگر کد پیچیده باشد ، اما در بسیاری موارد ، خلاصه لیست باعث می شود کدگذاری ساده تر و سریع تر انجام شود.
در زیر جداولی شامل برخی از توابع و متد های لیست ، و توضیحات آن ها آورده شده است.
توابع داخلی
متد های لیست
خلاصه
- لیست دقیقاً همان چیزی است که به نظر می رسد ، ظرف حاوی اشیاء مختلف پایتون ، که می توانند عدد صحیح ، کلمات ، مقادیر و غیره باشد.
- لیست های پایتون می توانند یکدست باشند ، به این معنی که شامل شی از یک نوع باشند. یا یکدست نباشند ، یعنی شامل انواع مختلفی از اشیاء.
- برای دستیابی به مقادیر موجود در لیست ها می توان از شاخص اشیاء موجود در لیست ها استفاده کرد.
- برش لیست روش تقسیم لیست به زیر مجموعه است و از شاخص های اشیاء لیست برای این کار استفاده می شود.
- سه روش برای حذف عنصر از لیست عبارتند از: list.remove () ,list.pop()و عملگر del
- از متد append برای ضمیمه کردن عناصر استفاده می شود که عنصر را به انتهای لیست اضافه می کند.
- حلقه زدن روی لیست ها می تواند دقیقاً مانند هر تابع حلقه دیگر در پایتون انجام شود. با این کار می توان یک متد را بر روی چندین عنصر یک لیست به طور همزمان اجرا کرد.
- خلاصه لیست ، توابعی هستند که با استفاده از توالی هایی که قبلاً ایجاد شده اند ، برای ایجاد توالی های جدید (مانند لیست ها ، لغت نامه ها و غیره) استفاده می شوند.