لیست در برنامه نویسی پایتون
لیست در برنامه نویسی پایتون
در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، ما همه چیز را در مورد لیست در برنامه نویسی پایتون (python list)، نحوه ایجاد آنها، برش دادن یک لیست، اضافه کردن یا حذف عناصر از آنها و غیره را به شما یاد خواهیم داد.
پیشنهاد ویژه : پکیج آموزش صفر تا صد پایتون
پایتون طیف وسیعی از انواع داده مرکب و ترکیبی را ارائه می دهد که اغلب به عنوان دنباله یا توالی نامیده می شوند. لیست یکی از پر استفاده ترین و متنوع ترین نوع داده های مورد استفاده در پایتون است.
چگونه در پایتون یک لیست ایجاد کنیم؟
در برنامه نویسی پایتون، با قرار دادن همه موارد (عناصر) درون یک براکت [] لیست ساخته می شود، و عناصر موجود در لیست با ویرگول از هم جدا می شوند.
یک لیست می تواند هر تعداد عنصر داشته باشد و ممکن است انواع مختلفی داشته باشد مانند (عدد صحیح ، ممیز شناور، رشته و غیره).
1 2 3 4 5 6 7 8 |
# empty list my_list = [] # list of integers my_list = [1, 2, 3] # list with mixed data types my_list = [1, "Hello", 3.4] |
همچنین یک لیست می تواند لیست دیگری را به عنوان یک عنصر در خود داشته باشد. این حالت یک لیست تو در تو نامیده می شود.
1 2 |
# nested list my_list = ["mouse", [8, 4, 6], ['a']] |
دسترسی به عناصر یک لیست در پایتون
روش های مختلفی وجود دارد که می توانیم به عناصر یک لیست دسترسی پیدا کنیم.
اندیس لیست
ما می توانیم از عملگر اندیس برای دسترسی به عناصر در لیست استفاده کنیم. در پایتون، اندیس ها از 0 شروع می شوند. بنابراین، لیستی با 5 عنصر از 0 تا 4 دارای اندیس خواهد بود.
تلاش برای دستیابی به اندیس های غیر از این باعث ایجاد یک IndexError می شود. ایندیس باید یک عدد صحیح باشد. ما نمی توانیم از عدد ممیز شناور یا انواع دیگر استفاده کنیم ، این امر منجر به TypeError می شود.
لیست های تو در تو با استفاده از اندیس سازی تو در تو قابل دسترسی هستند.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# List indexing my_list = ['p', 'r', 'o', 'b', 'e'] # Output: p print(my_list[0]) # Output: o print(my_list[2]) # Output: e print(my_list[4]) # Nested List n_list = ["Happy", [2, 0, 1, 5]] # Nested indexing print(n_list[0][1]) print(n_list[1][3]) # Error! Only integer can be used for indexing print(my_list[4.0]) |
خروجی
1 2 3 4 5 6 7 8 |
p o e a 5 Traceback (most recent call last): File "<string>", line 21, in <module> TypeError: list indices must be integers or slices, not float |
اندیس دهی منفی
پایتون برای دنباله های یا همان توالی های خود اندیس دهی منفی را امکان پذیر می کند. اندیس 1- به آخرین مورد لیست، اندیس 2- به یکی مانده به آخر اشاره دارد.
1 2 3 4 5 6 |
# Negative indexing in lists my_list = ['p','r','o','b','e'] print(my_list[-1]) print(my_list[-5]) |
خروجی
1 2 |
e p |
چگونه می توان لیست ها را در پایتون برش زد؟
با استفاده از عملگر برش می توانیم به طیف وسیعی از عناصر در یک لیست دسترسی داشته باشیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# List slicing in Python my_list = ['p','r','o','g','r','a','m','i','z'] # elements 3rd to 5th print(my_list[2:5]) # elements beginning to 4th print(my_list[:-5]) # elements 6th to end print(my_list[5:]) # elements beginning to end print(my_list[:]) |
خروجی
1 2 3 4 |
['o', 'g', 'r'] ['p', 'r', 'o', 'g'] ['a', 'm', 'i', 'z'] ['p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z'] |
برش زدن را می توان با در نظر گرفتن اندیس در بین عناصر به شکل زیر نشان داد. بنابراین اگر می خواهیم به محدوده ای دسترسی پیدا کنیم، به دو اندیس نیاز داریم که آن قسمت را از لیست جدا می کند.
تغییر عناصر یا افزودن عناصر جدید به لیست در پایتون
لیست ها قابل تغییر هستند، به این معنی که عناصر آنها بر خلاف رشته یا تاپل قابل تغییر هستند.
ما می توانیم از عملگر انتساب (=) برای تغییر یک مورد یا طیف وسیعی از موارد استفاده کنیم.
1 2 3 4 5 6 7 8 9 10 11 12 |
# Correcting mistake values in a list odd = [2, 4, 6, 8] # change the 1st item odd[0] = 1 print(odd) # change 2nd to 4th items odd[1:4] = [3, 5, 7] print(odd) |
خروجی
1 2 |
[1, 4, 6, 8] [1, 3, 5, 7] |
ما می توانیم با استفاده از متد ()append یک مورد را به لیست اضافه کنیم یا با استفاده از متد ()extend چندین مورد را اضافه کنیم.
1 2 3 4 5 6 7 8 9 10 |
# Appending and Extending lists in Python odd = [1, 3, 5] odd.append(7) print(odd) odd.extend([9, 11, 13]) print(odd) |
خروجی
1 2 |
[1, 3, 5, 7] [1, 3, 5, 7, 9, 11, 13] |
همچنین می توانیم از عملگر + برای ترکیب دو لیست استفاده کنیم. به این کار الحاق (concatenation) نیز گفته می شود.
عملگر * لیستی را به تعداد یک عدد داده شده، تکرار می کند.
1 2 3 4 5 6 |
# Concatenating and repeating lists odd = [1, 3, 5] print(odd + [9, 7, 5]) print(["re"] * 3) |
خروجی
1 2 |
[1, 3, 5, 9, 7, 5] ['re', 're', 're'] |
بعلاوه، می توانیم با استفاده از متد()insert یک عنصر را در مکان دلخواه وارد کنیم یا با فشردن آن در یک برش خالی از لیست، چندین مورد را وارد کنیم.
1 2 3 4 5 6 7 8 9 |
# Demonstration of list insert() method odd = [1, 9] odd.insert(1,3) print(odd) odd[2:2] = [5, 7] print(odd) |
خروجی
1 2 |
[1, 3, 9] [1, 3, 5, 7, 9] |
چگونه عناصر را از یک لیست حذف کنیم؟
با استفاده از کلیدواژه del می توانیم یک یا چند مورد را از لیست حذف کنیم. حتی می توان لیست را به طور کامل حذف کند.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# Deleting list items my_list = ['p', 'r', 'o', 'b', 'l', 'e', 'm'] # delete one item del my_list[2] print(my_list) # delete multiple items del my_list[1:5] print(my_list) # delete entire list del my_list # Error: List not defined print(my_list) |
خروجی
1 2 3 4 5 |
['p', 'r', 'b', 'l', 'e', 'm'] ['p', 'm'] Traceback (most recent call last): File "<string>", line 18, in <module> NameError: name 'my_list' is not defined |
ما می توانیم از متد ()remove برای حذف مورد داده شده یا از متد ()pop برای حذف یک مورد در فهرست داده شده استفاده کنیم.
در صورت عدم اندیس دهی، متد ()pop آخرین عنصر را حذف و برمی گرداند. این به ما کمک می کند لیست ها را به صورت پشته پیاده سازی کنیم (اولین ورودی، آخرین خروجی).
همچنین می توانیم از متد ()clear برای خالی کردن لیست استفاده کنیم
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
my_list = ['p','r','o','b','l','e','m'] my_list.remove('p') # Output: ['r', 'o', 'b', 'l', 'e', 'm'] print(my_list) # Output: 'o' print(my_list.pop(1)) # Output: ['r', 'b', 'l', 'e', 'm'] print(my_list) # Output: 'm' print(my_list.pop()) # Output: ['r', 'b', 'l', 'e'] print(my_list) my_list.clear() # Output: [] print(my_list) |
خروجی
1 2 3 4 5 6 |
['r', 'o', 'b', 'l', 'e', 'm'] o ['r', 'b', 'l', 'e', 'm'] m ['r', 'b', 'l', 'e'] [] |
سرانجام، ما می توانیم با اختصاص دادن لیست خالی به برشی از عناصر، موارد موجود در لیست را حذف کنیم.
1 2 3 4 5 6 7 |
>>> my_list = ['p','r','o','b','l','e','m'] >>> my_list[2:3] = [] >>> my_list ['p', 'r', 'b', 'l', 'e', 'm'] >>> my_list[2:5] = [] >>> my_list ['p', 'r', 'm'] |
متد لیست در برنامه نویسی پایتون
روشهایی که در برنامه نویسی پایتون همراه با شی لیست موجود است، که در زیر آورده شده است.
از طریق () list.method قابل دسترسی هستند. برخی از روشها قبلاً در بالا استفاده شده است.
- ()append – یک عنصر را به انتهای لیست اضافه کنید
- ()extend – تمام عناصر لیست را به لیست دیگر اضافه کنید
- ()insert – قرار دادن یک عنصر در فهرست تعریف شده
- ()remove – عنصری را از لیست حذف می کند
- ()pop – یک عنصر را در فهرست داده شده حذف و برمی گرداند
- ()clear – همه موارد را از لیست حذف می کند
- ()count – تعداد تعداد عناصری را که به عنوان آرگومان ارسال شده اند برمی گرداند
- ()sort – مرتب سازی موارد در یک لیست به ترتیب صعودی
- ()reverse – ترتیب موارد را در لیست معکوس کنید
- ()copy – یک نسخه Shallow Copy از لیست را برمی گرداند
چند مثال از متدهای لیست پایتون:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# Python list methods my_list = [3, 8, 1, 6, 0, 8, 4] # Output: 1 print(my_list.index(8)) # Output: 2 print(my_list.count(8)) my_list.sort() # Output: [0, 1, 3, 4, 6, 8, 8] print(my_list) my_list.reverse() # Output: [8, 8, 6, 4, 3, 1, 0] print(my_list) |
خروجی
1 2 3 4 |
1 2 [0, 1, 3, 4, 6, 8, 8] [8, 8, 6, 4, 3, 1, 0] |
List comprehension: روشی برای ایجاد لیست جدید
List comprehension یک روش ظریف و مختصر برای ایجاد یک لیست جدید از یک لیست موجود در پایتون است.
برای استفاده از List comprehension از دستور for درون براکت استفاده می شود.
در اینجا مثالی با استفاده از این روش آورده شده است
1 2 |
pow2 = [2 ** x for x in range(10)] print(pow2) |
خروجی
1 |
[1, 2, 4, 8, 16, 32, 64, 128, 256, 512] |
این کد معادل است با:
1 2 3 |
pow2 = [] for x in range(10): pow2.append(2 ** x) |
List comprehension می تواند به صورت اختیاری حاوی عبارتهای for یا if بیشتری باشد. یک عبارت if اختیاری می تواند موارد موجود در لیست جدید را فیلتر کند. در اینجا چند نمونه آورده شده است.
1 2 3 4 5 6 7 8 |
>>> pow2 = [2 ** x for x in range(10) if x > 5] >>> pow2 [64, 128, 256, 512] >>> odd = [x for x in range(20) if x % 2 == 1] >>> odd [1, 3, 5, 7, 9, 11, 13, 15, 17, 19] >>> [x+y for x in ['Python ','C '] for y in ['Language','Programming']] ['Python Language', 'Python Programming', 'C Language', 'C Programming'] |
سایر عملیات لیست در پایتون
تست عضویت در لیست
ما می توانیم با استفاده از کلیدواژه in، بررسی کنیم که آیا موردی در لیست وجود دارد یا خیر.
1 2 3 4 5 6 7 8 9 10 |
my_list = ['p', 'r', 'o', 'b', 'l', 'e', 'm'] # Output: True print('p' in my_list) # Output: False print('a' in my_list) # Output: True print('c' not in my_list) |
خروجی
1 2 3 |
True False True |
تکرار از طریق یک لیست
با استفاده از حلقه for می توانیم هر مورد در لیست را تکرار کنیم.
1 2 |
for fruit in ['apple','banana','mango']: print("I like",fruit) |
خروجی
1 2 3 |
I like apple I like banana I like mango |
لیست جلسات قبل آموزش برنامه نویسی پایتون
- آموزش نصب و اجرای برنامه نویسی پایتون
- کلیدواژه ها و شناسه های برنامه نویسی پایتون
- دستورات، تورفتگی ها و کامنت ها در برنامه نویسی پایتون
- متغیرها، ثابت ها و لیترال ها در برنامه نویسی پایتون
- انواع داده ها در برنامه نویسی پایتون
- تبدیل نوع در برنامه نویسی پایتون
- ورودی، خروجی و وارد کردن در برنامه نویسی پایتون
- عملگرها در برنامه نویسی پایتون
- نام و دامنه در برنامه نویسی پایتون
- دستور شرطی if…else در برنامه نویسی پایتون
- حلقه for در برنامه نویسی پایتون
- حلقه while در برنامه نویسی پایتون
- دستورات break و continue در برنامه نویسی پایتون
- دستور pass در برنامه نویسی پایتون
- توابع در برنامه نویسی پایتون
- آرگومان تابع در برنامه نویسی پایتون
- تابع بازگشتی در برنامه نویسی پایتون
- تابع بی نام/ تابع لامبدا در برنامه نویسی پایتون
- متغیرهای سراسری، محلی و غیر محلی در برنامه نویسی پایتون
- کلیدواژه global در برنامه نویسی پایتون
- ماژول های برنامه نویسی پایتون
- پکیج ها در برنامه نویسی پایتون
- اعداد و تبدیل نوع داده در برنامه نویسی پایتون
دیدگاه شما