لیست در پایتون – به زبان ساده با مثال و کد

۱۶۱۳۵ بازدید
آخرین به‌روزرسانی: ۲۱ اسفند ۱۴۰۲
زمان مطالعه: ۱۳ دقیقه
لیست در پایتون – به زبان ساده با مثال و کد

در پایتون، شش «نوع داده» (Data Type) گوناگون وجود دارد. یکی از این موارد «لیست» (list) است. در این مطلب، به نوع داده لیست در پایتون پرداخته خواهد شد. در ابتدا، معرفی کوتاهی پیرامون این نوع داده انجام می‌شود و سپس، روش ساخت لیست، برش زدن یک لیست، حذف یا اضافه کردن عناصر به لیست و دیگر موارد مورد بررسی قرار می‌گیرد.

شایان ذکر است، پیش از این در مطلب «انواع داده در پایتون (Data Types) — به زبان ساده» به انواع داده‌های موجود در پایتون، شامل «عدد» (Number)، «لیست» (List)، «تاپل» (Tuple)، «رشته» (String)، «مجموعه» (Set) و «دیکشنری» (Dictionary) پرداخته شد. همچنین، در مطلب «نوع داده عددی در پایتون — به زبان ساده»، انواع داده‌های عددی شامل «اعداد صحیح» (integers)، «اعداد ممیز شناور» (floating point) و «اعداد مختلط» (complex numbers) مورد بررسی قرار گرفتند.

نوع داده لیست در پایتون

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

روش ساخت نوع داده لیست در پایتون

در برنامه‌نویسی پایتون، نوع داده لیست با قرار دادن همه آیتم‌ها (عناصر) درون یک براکت (کمانک) یعنی [ ]، ساخته می‌شود. عناصر یک لیست، با استفاده از علامت ویرگول، یعنی «,»، از هم جدا می‌شوند.

لیست می‌تواند هر تعدادی عنصر داشته باشد و این عناصر ممکن است خود دارای انواع داده متفاوتی باشند. برای مثال، عناصر یک لیست ممکن است ترکیبی از نوع داده «صحیح» (integer)، «شناور» (float) و «رشته» (String) باشند.

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

در کد زیر، مثال‌هایی پیرامون روش ساخت لیست آورده شده است.

1# empty list
2my_list = []
3
4# list of integers
5my_list = [1, 2, 3]
6
7# list with mixed datatypes
8my_list = [1, "Hello", 3.4]

در خط اول کد، یک لیست خالی ساخته شده است. از این مثال می‌توان فهمید که امکان ساختن لیست خالی در پایتون وجود دارد. در مثال دومی که در همین قطعه کد موجود است، یک لیست با سه عنصر ۱، ۲ و ۳ که هر سه دارای نوع داده عدد صحیح (int) هستند، ساخته شده است. در آخرین خط کد، یک لیست با سه عنصر ۱ (نوع داده عدد صحیح)، "Hello" (رشته) و ۳.۴ (ممیز شناور) ساخته شده است.

همانطور که از این مثال به خوبی مشهود است، نوع داده لیست در پایتون می‌تواند حاوی عناصری با انواع گوناگون باشد. همچنین، یک لیست می‌تواند شامل یک لیست دیگر باشد. به این موضوع، «لیست تو در تو» (Nested List) گفته می‌شود. مثالی از لیست تو در تو، در ادامه آمده است.

1# nested list
2my_list = ["mouse", [8, 4, 6], ['a']]

['a'] و [8, 4, 6] خود دو لیست مجزا و "mouse" یک رشته است. کلیه این موارد به عنوان عنصرهای لیست my_list در آن قرار گرفته‌اند و به این صورت، یک لیست تو در تو ایجاد شده است. در واقع لیستی وجود دارد که خود شامل دو لیست دیگر است.

روش دسترسی داشتن به عناصر یک لیست

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

اندیس لیست

می‌توان از عمل‌گر «اندیس» (Operator) یعنی []، برای دسترسی داشتن به یک عنصر از لیست، استفاده کرد. اندیس لیست‌ها در پایتون از عدد ۰ شروع می‌شود. دانستن این نکته بسیار حائز اهمیت است، زیرا در برخی از زبان‌ها مانند «جولیا» (Julia)، «فرترن» (Fortran)، «متلب» (Matlab)، «اِرلنگ» (Erlang) و «اسمال‌تاک» (Smalltalk) اندیس آرایه از عدد ۱ شروع می‌شود. البته، در اغلب زبان‌های محبوب، مانند «سی» (C)، «روبی» (Ruby)، «جاوا» (Java)، «پرل» (Perl) و جاوااسکریپت (JavaScript)، اندیس آرایه از صفر شروع می‌شود.

یک برنامه نویس در حال کار با لپ تاپ

بنابراین، برای لیستی که حاوی ۵ عنصر است، اندیس لیست از ۰ تا ۴ است. تلاش برای دسترسی به اندیس‌هایی که وجود ندارند، موجب IndexError (خطای اندیس) می‌شود. اندیس باید یک مقدار صحیح (int) باشد. نمی‌توان از نوع داده شناور یا دیگر انواع برای اندیس لیست استفاده کرد؛ انجام چنین کاری، موجب TypeError (خطای نوع) می‌شود. برای دسترسی داشتن به عناصر لیست تو در تو، باید از اندیس دهی تو در تو استفاده کرد. در ادامه، مثال‌های پیرامون نحوه استفاده از اندیس برای دسترسی به محتوای نوع داده لیست در پایتون، ارائه شده است.

1my_list = ['p','r','o','b','e']
2# Output: p
3print(my_list[0])
4
5# Output: o
6print(my_list[2])
7
8# Output: e
9print(my_list[4])
10
11# Error! Only integer can be used for indexing
12# my_list[4.0]
13
14# Nested List
15n_list = ["Happy", [2,0,1,5]]
16
17# Nested indexing
18
19# Output: a
20print(n_list[0][1])    
21
22# Output: 5
23print(n_list[1][3])

در قطعه کد بالا، ابتدا یک لیست با عنوان my_list ساخته شده که دارای ۵ عنصر از نوع داده رشته است. چنانچه پیش‌تر بیان شد، اندیس نوع داده لیست در پایتون، از عدد صفر شروع می‌شود. بنابراین، برای این لیست که دارای ۵ عنصر است، اندیس از عدد صحیح ۰ شروع می‌شود و تا ۴ ادامه دارد. با استفاده از دستور [my_list[0، دسترسی به اولین عنصر لیست انجام شده و با استفاده از تابع ()print، خروجی (p) چاپ شده است. با استفاده از کد ([print(my_list[2، به عنصر سوم لیست (دارای اندیس ۲) دسترسی ایجاد شده و با استفاده از تابع ()print مقدار (o) آن چاپ شده است. در نهایت، کد ([print(my_list[4 عنصر پنجم لیست، یعنی e را چاپ می‌کند.

در مثال دیگری که در همین قطعه کد موجود است، لیستی با عنوان n_list تعریف شده که حاوی یک رشته (Happy) و یک لیست دیگر ([2,0,1,5]) است. در واقع، n_list یک لیست تو در تو است. اکنون، با استفاده از اندیس‌دهی تو در تو، به عناصر لیست دسترسی ایجاد می‌شود. [n_list[0][1 یعنی از عنصر با اندیس 0 در لیست (اولین عنصر موجود در لیست که یک رشته است)، دومین بخش (اندیس یک) را بازگردان. بنابراین، خروجی برابر با a خواهد بود. شایان توجه است که در صورت وجود رشته در لیست، می‌توان به تک تک کاراکترهای آن، به شیوه بیان شده، دسترسی پیدا کرد.

با استفاده از دستور ([print(n_list[1][3، از عنصر دوم لیست (که خود یک لیست دیگر است)، عنصر چهارم (دارای اندیس ۳) بازگردانده و در خروجی چاپ می‌شود. در واقع، [1] به جایگاه عنصر در لیست اصلی و [3] به جایگاه عنصر در لیستی که داخل لیست اصلی قرار گرفته، اشاره دارد.

اندیس‌دهی منفی

پایتون، امکان اندیس‌دهی منفی برای یک توالی را نیز فراهم می کند. در مثالی که در ادامه ارائه شده است، اندیس ۱- به آخرین عنصر از لیست و ۲- به عنصر یکی مانده به آخر (دومین عنصر از آخر لیست به اول آن) اشاره دارد و به همین ترتیب می‌توان با اندیس‌دهی منفی، عناصر لیست را از آخر به اول فراخوانی کرد.

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

1my_list = ['p','r','o','b','e']
2
3# Output: e
4print(my_list[-1])
5
6# Output: p
7print(my_list[-5])

در اینجا، ابتدا لیست my_list ساخته شده که حاوی ۵ عنصر از نوع رشته است. سپس، با استفاده از ([print(my_list[-1 عنصر آخر لیست یعنی e بازگردانده و چاپ شده است. دستور ([print(my_list[-5 اولین عنصر از لیست، یعنی p، را چاپ می‌کند.

نوع داده لیست در پایتون -- به زبان ساده

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

می‌توان به طیف وسیعی از عناصر لیست با استفاده از عملگر برش زدن یعنی «دونقطه» (colon) دسترسی داشت.

در ادامه، مثال‌هایی برای این مورد ارائه شده است.

1my_list = ['p','r','o','g','r','a','m','i','z']
2# elements 3rd to 5th
3print(my_list[2:5])
4
5# elements beginning to 4th
6print(my_list[:-5])
7
8# elements 6th to end
9print(my_list[5:])
10
11# elements beginning to end
12print(my_list[:])

در قطعه کد بالا، ابتدا لیست my_list تعریف شده که حاوی ۹ عنصر است. بنابراین، اندیس لیست از عدد ۰ تا ۸ خواهد بود. سپس، با استفاده از دستور ([print(my_list[2:5، از عنصر دارای اندیس دو (یعنی عنصر سوم لیست که o است) تا اندیس ۴ (عنصر پنجم که r است)، در خروجی چاپ می‌شوند. همانطور که مشهود است، از اندیس ۲ تا سر اندیس ۵ (یعنی اندیس ۴ و در واقع عنصر سوم تا پنجم) آرایه چاپ شده‌اند.

['o', 'g', 'r']

[5-] اشاره به عنصر پنجم از آخر به اول دارد که در واقع می‌شود عنصر دارای اندیس ۴ (از اول به آخر)، یعنی پنجمین عنصر از لیست که برابر با r است. با استفاده از دستور ([print(my_list[:-5 از عنصر اول تا عنصر چهارم لیست (دارای اندیس ۳) چاپ می‌شوند.

['p', 'r', 'o', 'g']

چنانکه مشخص است، خود عنصر مربوط به اندیسی که به عنوان انتهای بازه آورده شده است، چاپ نمی‌شود. یعنی در مثال بالا، از اول تا سر اندیس ۴، یعنی اندیس ۳، چاپ می‌شود. در دستور ([:print(my_list[5، از عنصر دارای اندیس ۵ (یعنی ششمین عنصر لیست با مقدار a) تا انتهای لیست (آخرین عنصر) چاپ می‌شوند.

['a', 'm', 'i', 'z']

با استفاده از دستور ([:]print(my_list، از ابتدا تا انتهای لیست، یعنی کلیه عناصر، چاپ می‌شوند.

['p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z']

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

نوع داده لیست در پایتون

روش تغییر عنصر کنونی و یا درج عنصر جدید در لیست

نوع داده لیست در پایتون قابل تغییر محسوب می‌شود. شایان ذکر است، نوع داده‌های «تاپل» (Tuple) و «رشته» (String) در پایتون غیر قابل تغییر هستند.

می‌توان از عملگر تخصیص، یعنی «=»، برای تغییر دادن یک عنصر و یا طیفی از عناصر استفاده کرد.

1# mistake values
2odd = [2, 4, 6, 8]
3
4# change the 1st item    
5odd[0] = 1            
6
7# Output: [1, 4, 6, 8]
8print(odd)
9
10# change 2nd to 4th items
11odd[1:4] = [3, 5, 7]  
12
13# Output: [1, 3, 5, 7]
14print(odd)
لیست داده ها در پایتون

می‌توان «یک عنصر» را با استفاده از متد ()append و «چند عنصر» را با استفاده از متد ()extend به لیست اضافه کرد.

1odd = [1, 3, 5]
2
3odd.append(7)
4
5# Output: [1, 3, 5, 7]
6print(odd)
7
8odd.extend([9, 11, 13])
9
10# Output: [1, 3, 5, 7, 9, 11, 13]
11print(odd)

در قطعه کد بالا، ابتدا یک لیست با عنوان odd ساخته شده که دارای سه عنصر صحیح ۱، ۲ و ۳ است. سپس، با استفاده از متد append، یعنی دستور (odd.append(7، عدد ۷ نیز به لیست افزوده شده است. سپس، با استفاده از دستور (print(odd، لیست چاپ می‌شود. خروجی به صورت زیر خواهد بود.

[1, 3, 5, 7]

با استفاده از متد extend دستور ([odd.extend([9, 11, 13)‎‎)، عنصرهای ۹، ۱۱ و ۱۳ نیز به لیست اضافه شده‌اند و با بهره‌گیری از (print(odd، لیست odd در خروجی چاپ شد که به صورت زیر است.

[1, 3, 5, 7, 9, 11, 13]

همچنین، می‌توان از عملگر «+» برای ترکیب دو لیست استفاده کرد. این کار «الحاق» (Concatenation) نیز نامیده می‌شود. عملگر «*»، یک لیست را به تعداد یک عدد داده شده، تکرار می‌کند. مثال‌های زیر، در همین رابطه هستند.

1odd = [1, 3, 5]
2
3# Output: [1, 3, 5, 9, 7, 5]
4print(odd + [9, 7, 5])
5
6#Output: ["re", "re", "re"]
7print(["re"] * 3)

در دستور ([print(odd + [9, 7, 5، مقادیر ۹، ۷ و ۵ به لیست اضافه شده‌اند و خروجی چاپ شده است.

[1, 3, 5, 9, 7, 5]

با استفاده از دستور (print(["re"] * 3، مقدار ["re"] سه بار تکرار و چاپ می‌شود.

['re', 're', 're']

علاوه بر این، می‌توان با استفاده از متد ()insert یک عنصر را در موقعیت مشخصی از لیست درج کرد و یا چندین عنصر را در برشی خالی از یک لیست قرار داد. مثال‌های این موارد در ادامه آمده است.

1odd = [1, 9]
2odd.insert(1,3)
3
4# Output: [1, 3, 9] 
5print(odd)
6
7odd[2:2] = [5, 7]
8
9# Output: [1, 3, 5, 7, 9]
10print(odd)

در متد بالا، ابتدا لیست odd با دو عنصر ۱ و ۹ ساخته شده است. سپس، با استفاده از متد insert، مقدار ۳ در اندیس ۱ از لیست قرار می‌گیرد. خروجی به صورت زیر خواهد بود.

[1, 3, 9]

با استفاده از دستور [odd[2:2] = [5, 7، مقادیر ۵ و۷ در برشی از لیست با شروع از اندیس ۲ قرار می‌گیرند.

[1, 3, 5, 7, 9]

روش حذف یک عنصر از لیست

می‌توان یکی یا تعداد بیشتری از عناصر یک لیست را با استفاده از کلیدواژه del حذف کرد.

این کلیدواژه حتی می‌تواند برای حذف کردن کل یک لیست نیز به کار برود.

1my_list = ['p','r','o','b','l','e','m']
2
3# delete one item
4del my_list[2]
5
6# Output: ['p', 'r', 'b', 'l', 'e', 'm']     
7print(my_list)
8
9# delete multiple items
10del my_list[1:5]  
11
12# Output: ['p', 'm']
13print(my_list)
14
15# delete entire list
16del my_list       
17
18# Error: List not defined
19print(my_list)

در قطعه کد بالا، ابتدا لیست ['my_list = ['p','r','o','b','l','e','m تعریف شده است. سپس، با استفاده از دستور [del my_list[2، عنصر سوم لیست یعنی o حذف می‌شود. خروجی (print(my_list به صورت زیر است.

['p', 'r', 'b', 'l', 'e', 'm']

سپس، با استفاده از دستور [del my_list[1:5، از اندیس ۱ تا اندیس ۵ حذف می‌شوند (یعنی عنصر خانه دارای اندیس ۵ هم پاک می‌شود). خروجی دستور (print(my_list، در این مرحله، به صورت زیر است.

['p', 'm']

در نهایت، با استفاده از دستور del my_list، لیست به طور کامل پاک می‌شود. خروجی دستور (print(my_list خطای NameError: name 'my_list' is not defined خواهد بود. می‌توان از متد ()remove برای حذف کردن یک عنصر داده شده و از ()pop برای حذف کردن یک عنصر در اندیس داده شده استفاده کرد.

یک لپ تاپ در فضایی با نور قرمز

متد ()pop عنصر را حذف و آخرین عنصر را در صورتی که اندیسی داده نشده باشد، باز می‌گرداند. این کار کمک می‌کند تا بتوان لیست‌ها را به عنوان پشته پیاده‌سازی کرد (اولین ورودی، آخرین خروجی). می‌توان از متد ()clear نیز برای خالی کردن لیست استفاده کرد.

1my_list = ['p','r','o','b','l','e','m']
2my_list.remove('p')
3
4# Output: ['r', 'o', 'b', 'l', 'e', 'm']
5print(my_list)
6
7# Output: 'o'
8print(my_list.pop(1))
9
10# Output: ['r', 'b', 'l', 'e', 'm']
11print(my_list)
12
13# Output: 'm'
14print(my_list.pop())
15
16# Output: ['r', 'b', 'l', 'e']
17print(my_list)
18
19my_list.clear()
20
21# Output: []
22print(my_list)

در کد بالا، ابتدا لیست ['my_list = ['p','r','o','b','l','e','m تعریف شده است. سپس، با استفاده از دستور ('my_list.remove('p، عنصر p از لیست حذف می‌شود. خروجی دستور (print(my_list به صورت زیر خواهد بود.

['r', 'o', 'b', 'l', 'e', 'm']

دستور ((print(my_list.pop(1 عنصر اندیس اول را حذف و مقدار آن را باز می‌گرداند. خروجی به صورت زیر است:

o

خروجی (print(my_list به صورت زیر است.

['r', 'b', 'l', 'e', 'm']

دستور (()print(my_list.pop آخرین عنصر لیست را حذف کرده و مقدار آن را باز می‌گرداند.

m

خروجی (print(my_list به صورت زیر است.

['r', 'b', 'l', 'e']

()my_list.clear، کلیه عناصر لیست را پاک می‌کند. پس از اجرای دستور مذکور، خروجی (print(my_list به صورت زیر خواهد بود.

[]

در نهایت، می‌توان عناصر یک لیست را با تخصیص یک لیست خالی به برشی از عناصر، حذف کرد. در ادامه، مثالی در همین رابطه آمده است.

1my_list = ['p','r','o','b','l','e','m']
2my_list[2:3] = []
3my_list
4my_list[2:5] = []
5my_list

در کد بالا، ابتدا لیست ['my_list = ['p','r','o','b','l','e','m ساخته می‌شود. سپس، یک لیست خالی به برش [2:3] تخصیص داده می‌شود. با دستور my_list، محتوای لیست نمایش داده می‌شود که به صورت زیر است.

['p', 'r', 'b', 'l', 'e', 'm']

با دستور [] = [[my_list[2:5] یک لیست خالی به برش [2:5] افزوده می‌شود. با my_list، محتوای لیست نمایش داده می‌شود که به صورت زیر است.

['p', 'r', 'm']

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

متدهای گوناگونی برای شی لیست در زبان برنامه‌نویسی پایتون وجود دارد که لیست آن در زیر آمده است. به این متدها می‌توان از طریق ()list.method دسترسی داشت.

برخی از متدها در حال حاضر در کدهایی که پیش از این ارائه شده‌اند، مورد استفاده قرار گرفته بودند.

  • ()append: یک عنصر را به انتهای لیست اضافه می‌کند.
  • ()extend: همه عناصر لیست را به لیست دیگری اضافه می‌کند.
  • ()insert: یک عنصر را در اندیس تعریف شده درج می‌کند.
  • ()remove: یک عنصر را از لیست حذف می‌کند.
  • ()pop: یک عنصر را در اندیس داده شده حذف می‌کند و مقدار آن را باز می‌گرداند.
  • ()clear: همه عناصر را از لیست حذف می‌کند.
  • ()index: اندیس اولین عنصر مطابق با آرگومان متد را باز می‌گرداند.
  • ()count: تعداد عناصری که مطابق با آرگومان داده شده به متد هستند را باز می‌گرداند.
  • ()sort: عناصر موجود در لیست را به ترتیب صعودی مرتب می‌کند.
  • ()reverse: ترتیب عناصر موجود در لیست را معکوس می‌کند.
  • ()copy: یک Shallow Copy از لیست را باز می‌گرداند.

در ادامه، مثال‌هایی از متدهای لیست در پایتون، در ادامه آورده شده‌اند.

1my_list = [3, 8, 1, 6, 0, 8, 4]
2
3# Output: 1
4print(my_list.index(8))
5
6# Output: 2
7print(my_list.count(8))
8
9my_list.sort()
10
11# Output: [0, 1, 3, 4, 6, 8, 8]
12print(my_list)
13
14my_list.reverse()
15
16# Output: [8, 8, 6, 4, 3, 1, 0]
17print(my_list)

در قطعه کد بالا، ابتدا یک لیست با عنوان my_list تعریف شده است که هفت عنصر دارد (در نتیجه اندیس عناصر لیست از ۰ تا ۶ است). با دستور ((print(my_list.index(8، اندیس اولین عنصری که با مقدار موجود در پرانتز مطابقت دارد، با استفاده از متد ()index بازگردانده می‌شود و توسط تابع ()print در خروجی چاپ می‌شود.

برای my_list، این مقدار برابر با ۱ است. با دستور، ((print(my_list.count(8، تعداد عنصرهایی از لیست که با آرگومان داده شده به متد برابر هستند، بازگردانده و در خروجی چاپ می‌شوند. برای my_list که در اینجا معرفی شده،‌ خروجی برابر با ۲ است. با استفاده از دستور ()my_list.sort، عناصر موجود در لیست به ترتیب صعودی مرتب می‌شوند. خروجی (print(my_list در این حالت، برابر با [۸, ۸, ۶, 4, ۳, ۱, ۰] است. ()my_list.reverse ترتیب عناصر لیست my_list را معکوس می‌کند. خروجی (print(my_list در این حالت برابر با [0, 1, 3, 4, 6, 8, 8] است.

یک لپ تاپ در یک اتاق سرور (تصویر تزئینی مطلب نوع داده لیست در پایتون)

راهی برای ساخت یک لیست جدید

List Comprehension راهی جالب و کوتاه، برای ساخت لیست جدید از یک لیست موجود در پایتون است. برای تعریف List Comprehension، از دستور for درون براکت استفاده می‌شود.

در ادامه، مثالی از ساخت لیست با استفاده از List Comprehension ارائه شده است.

1pow2 = [2 ** x for x in range(10)]
2
3# Output: [1, 2, 4, 8, 16, 32, 64, 128, 256, 512]
4print(pow2)

با استفاده از قطعه کد بالا، حاصل دو به توان اعداد موجود در  (range(10 ساخته می‌شود. در واقع، عدد دو به توان ۱، ۲، ۳ الی ۹ محاسبه می‌شود و در یک لیست قرار می‌گیرد. خروجی قطعه کد بالا، [1, 2, 4, 8, 16, 32, 64, 128, 256, 512] است. کد ارائه شده در بالا، معادل کد زیر محسوب می‌شود.

1pow2 = []
2for x in range(10):
3   pow2.append(2 ** x)

List Comprehension می‌تواند بسته به نیاز کاربر، شامل عبارت‌های for یا if بیشتری باشد. یک عبارت if انتخابی می‌تواند گزینه‌ها را برای لیست جدید فیلتر کند. در ادامه، مثال‌هایی در این رابطه ارائه شده است.

1>>> pow2 = [2 ** x for x in range(10) if x > 5]
2>>> pow2
3[64, 128, 256, 512]
4>>> odd = [x for x in range(20) if x % 2 == 1]
5>>> odd
6[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
7>>> [x+y for x in ['Python ','C '] for y in ['Language','Programming']]
8['Python Language', 'Python Programming', 'C Language', 'C Programming']

با بهره‌گیری از کد [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 ','C '] و  ['Language','Programming]  به صورت دو به دو خواهند بود. در واقع، خروجی نهایی ['Python Language', 'Python Programming', 'C Language', 'C Programming'] است.

دیگر عملیات لیست در پایتون

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

تست عضویت در لیست در پایتون

می‌توان با استفاده از کلیدواژه in، بررسی کرد که آیا یک آیتم در لیست وجود دارد یا خیر. در ادامه، مثال‌هایی برای این مورد آمده است.

1my_list = ['p','r','o','b','l','e','m']
2
3# Output: True
4print('p' in my_list)
5
6# Output: False
7print('a' in my_list)
8
9# Output: True
10print('c' not in my_list)

حلقه زدن در لیست

با استفاده از حلقه for، می‌توان در لیست حلقه زد (تکرار داشت).

1for fruit in ['apple','banana','mango']:
2    print("I like",fruit)

توابع توکار با لیست

توابع توکاری مانند ()any() ،enumerate() ،len() ،max() ،min() ،list() ،sorted و ()all معمولا برای انجام کار با لیست در پایتون مورد استفاده قرار می‌گیرند.

کارکرد هر یک از این توابع، در ادامه آمده است.

  • ()all: اگر همه مقادیر موجود در لیست true باشند (و یا لیست خالی باشد)، مقدار True را باز می‌گرداند.
  • ()any: در صورتی که هر عنصری از لیست true باشد، مقدار True را باز می‌گرداند.
  • ()enumerate: یک شی شمارشی را باز می‌گرداند. شامل اندیس و مقدار همه عناصر یک لیست به صورت یک «تاپل» (tuple) است.
  • ()len: طول لیست (تعداد عناصر لیست) را باز می‌گرداند.
  • ()list: یک نوع تکرار شونده (تاپل، رشته، مجموعه یا دیکشنری) را به لیست تبدیل می‌کند.
  • ()max: بزرگترین عنصر لیست را باز می‌گرداند.
  • ()min: کوچکترین عنصر لیست را باز می‌گرداند.
  • ()sorted: یک لیست مرتب شده جدید را باز می‌گرداند (خود لیست را مرتب نمی‌کند).
  • ()sum: مجموع همه عناصر موجود در لیست را باز می‌گرداند.
بر اساس رای ۶۹ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
programiz
۱۹ دیدگاه برای «لیست در پایتون – به زبان ساده با مثال و کد»

سلام
چگونه می شود بردار تولید کرد و اندازه آن را بدست آورد بدون استفاده از numpy

کامل و مفید .ممنونم _خسته نباشید #

سلام
چطور میتوانم در پایتون این لیست را به همین شکل int کنم؟
nomre=[[‘3′,’6′,’9′,’14’],[‘7′,’20’,’18’,’24’],[’18’,’17’,’19’,’7′]]

سلام ببخشید یک سوال داشتم
مثلا من همچین لیستی دارم
a = [83,6,21,3,95]d
حالا میخوام محل بزرگترین عدد رو بهم نشون بده مثلا بگه بزرگترین عدد چهارمین حرف توی این لیست باشه چون لیست از 0 شروع میشه وگرنه در حالت عادی میشه حرف پنجم لیست . راهی هست که بشه این کار رو کرد؟

سلام ببخشید من میخوام کدی رو بنویسم که وقتی یک لیست چاپ شد اون پرانتز ها و ویرگول ها چاپ نشه

از تابع max میتونی استفاده کنی

سلام. من میخوام از کاربر یک ورودی که عدد باشه رو بگیرم و در تک تک عدد های درون یک لیست تقسیم کنم. سورس کدش چیه؟

سلام
ارجاع یک آرایه از تابع به بدنه اصلی چظور باید انجام بشه .تابع درست کار میکنه اما چیزی برنمیگردونه

سلام
یه سوالی داشتم اگه یک لیستی داشته باشیم که ترکیبی از لیست و اعداد و حروف مختلفی باشه به عنوان مثال
a = [1,2,3,4,5,[‘a’,’b’,’c’,’d’],[‘sajad’,’ali’,’koshi’],[1.56,2.65,3.80]]
اگه بخوایم یک عضو از یک لیست که خودش تو یک لیست دیگست رو حذف کنیم چطور باید اینکارو کنیم؟
removeکه فقط عبارتی که میخوایم حذف کنیم رو حذف میکنه pop هم که اندیس میگیره.راهی برای این هست یا نه؟

ضمنا روش حرفه ای تر اینه که شما مثلا در یک لیست پیچیده نمیتونی ایندکس شامل آیتم «علی» رو بشماری، اینجا باید از شرط if استفاده کنی تا در جایی که آیتم «علی» در لیست بود اون رو حذف کنه، به این صورت: ( فرض میکنیم اسم لیست شما mylist هست)

for i in mylist: if "ali" in i: i.remove("ali"

اینجا بد نشون میده..کپی کنین تو ادیتور درست میشه…

مثلا میخوایم آیتم «ali رو حذف کنیم»

اول میبینیم ساب لیستی که شامل «ali» هست چه ایندکسی داره، از چپ میشماریم و میبینیم که میشه ۳

یعنی اگه اسم لیست شما رو بزاریم mylist ، و این دستور رو وارد کنیم:

mylist[3]

خروجی ما این sublist خواهد بود :
[‘sajad’,’ali’,’koshi’]

حالا برای حذف «ali» از متد remove استفاده میکنیم، البته در ساب لیست مربوطه:
mylist[3].remove("ali") ........be in surat khoruji mishe: a = [1,2,3,4,5,[‘a’,’b’,’c’,’d’],[‘sajad’,’koshi’],[1.56,2.65,3.80]]

سلام وقت بخیر
یه سوالی داشتم اگه یک لیستی داشته باشیم که ترکیبی از لیست و اعداد و حروف مختلفی باشه به عنوان مثال
a = [1,2,3,4,5,[‘a’,’b’,’c’,’d’],[‘sajad’,’ali’,’koshi’],[1.56,2.65,3.80]]
اگه بخوایم یک عضو از یک لیست که خودش تو یک لیست دیگست رو حذف کنیم چطور باید اینکارو کنیم؟
removeکه فقط عبارتی که میخوایم حذف کنیم رو حذف میکنه pop هم که اندیس میگیره.راهی برای این هست یا نه؟

سلام من اگر بخوام یک رشته واحد در پایتون بنویسم که خروجی python is a programming languageبده باید چ دستور و کدی بنویسم؟

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

print(“Python is a programming language “)

پیروز، شاد و تندرست باشید.

با سلام ببخشید اگه من بخوام از توی یه لیست طولانی به اسمی رو آدرسشو پیدا کنم باید چه کدی رو بزنم؟اون اسم هم توی لیست دوبار تکرار شده باشه

((()lst = list(map(int, input().split
این یا این :
([()lst = list([int(x) for x in input().split
اگر بخواید یه لیست از اعداد صحیح باشه
واسه هر نوع داده دیگه فقط کافیه به جای int مثلا float بزارید

برای پایتون

سلام
ببخشید من اگه بخوام خود کاربر یک لیست برام وارد کنه چه کدیو باید وارد کنم؟

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *