لیست در پایتون یکی از پر کاربردترین نوع دادهای است که تقریباً در تمام برنامههای خود از آن استفاده میکنیم. اگر بتوانیم در کار با لیست پایتون به مهارت کافی برسیم، روند برنامه نویسی ما سرعت بیشتری خواهد گرفت. همچنین خواهیم توانست کارهای بعضاً خارق العادهای انجام دهیم! در این مقاله به بررسی نوع داده List در پایتون، آموزش کار با آن، توابع مهم و تکنیکهای کاربردی کار با لیست خواهیم پرداخت.
اگر تا به حال حتی یک خط برنامه نویسی کرده باشید، حتماً برایتان سوال شده که چگونه میتوان تعداد بسیار زیادی داده را در برنامه نگهداری کرد؟ فرض کنید بخواهیم نمرات یک دانشجو را در برنامه خود وارد کرده و روی آن پردازشهایی انجام دهیم.
اگر بخواهیم برای هر درس این دانشجو یک متغیر در نظر بگیریم، برنامه بسیار پیچیده خواهد شد! از طرفی تعداد دروس دانشجو مشخص نیست و ما نمیدانیم چه تعداد متغیر باید در نظر بگیریم.
به کمک لیستها خواهیم توانست تعداد مقادیر زیادی را در یک متغیر نگه داشته و حتی روی آن عملیاتهای مختلفی را اجرا کنیم.
برای عضویت در دوره ویدئویی میتونید به «دوره جامع پایتون در کالج» مراجعه کنید. با ثبتنام رایگان در دوره، به تمام جلسات اصلی، جلسات تکمیلی، تمرینها، آزمونها و منابع مازاد دسترسی کامل خواهید داشت.
اگر با زبانهای برنامه نویسی مختلف کار کرده باشید، احتمالاً با آرایهها آشنایی دارید. در یک تعریف بسیار کلی میتوان لیست را یک نوع آرایه در پایتون دانست؛ آرایهای که طول آن متغیر بوده و عناصر آن میتوانند از انواع مختلف دادهای باشند.
فهرست محتوای آموزش
لیست در پایتون
لیست یک ساختمان داده مهم در پایتون است. به کمک لیستها میتوانیم دنبالهای از دادهها را در یک متغیر ذخیره کرده و روی آنها عملیاتهای مختلفی را اجرا کنیم.
نوع دادهای لیست یکی از انواع داده مجموعهای یا Collections در این زبان محبوب است. لیست شامل مجموعهای از عناصر به صورت ترتیبی و قابل تغییر است. لیست در پایتون با کروشه (براکت یا bracket) به شکل []
مشخص میشود؛ به طوری که با علامت کروشه باز ]
لیست آغاز شده و تا علامت کروشه بسته [
ادامه مییابد.
هر عنصر درون لیست به وسیله کاما (ویرگول انگلیسی یا comma) به شکل ,
از یکدیگر جدا شده و میتواند از هر نوع داده دلخواهی باشد.
lst = ["Omid", 217, 22.5, "SabzDnaesh"]
در یک خط کد بالا، یک لیست با نام lst
ایجاد کردهایم. سپس درون آن چهار مقدار با نوع دادهای مختلف قرار دادهایم. به همین راحتی!
کاربرد لیست
از لیست در هر جایی که بخواهید میتوانید استفاده کنید! هر کجا که دنبالهای معنیدار یا بدون معنی از دادهها دارید، لیستها سریعترین و شاید بهترین انتخاب شما باشند.
مزیت لیستها در پایتون این است که به سادگی تعریف شده، اعضای آن اضافه یا کم میشوند. همچنین اعمال بین لیستها بسیار ساده و سریع است. در ادامه توابع و تکنیکهایی به شما معرفی میکنیم که به راحتی هر بلایی که خواستید سر لیستها در بیاورید!
دسترسی به اعضای لیست در پایتون
همانطور که پیشتر نیز گفته شد، سادهترین نوع تعریف یک لیست در پایتون، استفاده از دو علامت کروشه در کنار هم است.
با این تعریف، متوجه خواهید شد که امکان ایجاد یک لیست خالی نیز وجود دارد. در نتیجه حتماً نیازی نیست که در ابتدای کار تمام مقادیر درون لیست را داشته باشیم؛ بلکه در حین برنامه خواهیم توانست مقادیر دلخواه خود را به آن اضافه یا از آن کم کنیم.
دسترسی به اعضای لیست بر اساس اندیسهای آن صورت میگیرد. اندیسها اعدادی هستند که موقعیت هر عنصر در لیست را مشخص میکنند.
اولین عنصر یک لیست دارای اندیس صفر (0) و به طور کلی nاُمین عنصر دارای اندیس n-1 خواهد بود.
اندیس لیست (ایندکس یا نمایه)
فرض کنید یک لیست از اسامی افراد مختلف را درون لیست خود داریم.
lst = ["sara", "omid", "amir", "roya" ,"ehsan"]
برای دسترسی به هر عنصر از لیست، با داشتن موقعیت یا اندیس آن عنصر و آوردن اندیس در جلوی نام متغیر لیست، به عنصر مورد نظرمان دسترسی خواهیم داشت.
یعنی قطعه کد زیر به ما عنصری که در اندیس شماره 3 قرار دارد با خروجی میدهد؛ یعنی چهارمین عنصر در لیست که معادل roya
است.
lst[3]
به همین سادگی خواهیم توانست به تمام عناصر درون یک لیست دسترسی پیدا کنیم.
توجه کنید که اندیس یک مقدار از نوع عددی صحیح (integer) است. در نتیجه فراخوانی اندیس اعشاری یا رشتهای ما را با خطا مواجه خواهد کرد.
در لیست بالا ما پنج عنصر داریم. بازه اندیسهای ما از 0 تا 4 خواهد بود. وارد کردن عددی بزرگتر از 4 ما را با خطای اندیس (IndexError) مواجه خواهد کرد.
اندیس منفی لیست در پایتون
زبان برنامه نویسی پایتون تعریف اندیس برای اعضای یک لیست را امکانپذیر کرده است. به اینصورت که آخرین عنصر هر لیست دارای اندیس -1، عنصر یکی مانده به آخر -2 و همینطور تا عنصر اول…
با کمک اندیس منفی در پایتون میتوانیم به عناصر یک لیست از انتهای آن دسترسی داشته باشیم.
به طور کلی اندیسهای عناصر یک لیست در پایتون به صورتی که در تصویر زیر مشخص شده در نظر گرفته میشوند.
بنابراین برای چاپ اسم ehsan در لیست مفروض خود، کدی شبیه به کد زیر خواهیم داشت.
print( lst[-1] )
# Output: ehsan
سوال: با توجه به این توضیحات، به نظرتان بازه اندیس منفی مجاز در پایتون در یک لیست با n عضو چیست؟
دسترسی به بخشی از لیست (برش زدن List)
یکی از ویژگیها و قابلیتهای جذاب لیستها در پایتون، توانایی برش زدن لیست یا Slicing است.
بگذارید این موضوع را همراه با یک مثال برایتان توضیح دهم. فرض کنید لیست زیر را در برنامه خود ایجاد کردهایم.
lst = ['s', 'a', 'b', 'z', 'd', 'a', 'n', 'e', 's', 'h']
یک لیست با اندازه 10. اگر بخواهیم فقط به بخشی از این لیست دسترسی داشته باشیم باید چگونه عمل کنیم؟
ویژگی slicing یا برش زدن list این امکان را به ما میدهد که فقط به بخشی از یک لیست دسترسی داشته باشیم.
دسترسی به لیست با تعریف بازه اندیس
برای تعریف یک بازه اندیس در هنگام فراخوانی عناصر لیست، کافی است به جای وارد کردن یک شماره اندیس، بازه آن را مشخص کنیم. مشخص کردن بازه با علامت دو نقطه (:
) انجام میشود.
lst[3:7]
# Output: ['z', 'd', 'a', 'n']
در قطعه کد بالا، عناصری که اندیس آنها در بازه 3 تا 7 بود به ما برگردانده شد. توجه کنید که بازه اندیسها چگونه تعریف شده است:
اگر بازه به صورت i:j
تعریف شود، این تعریف شامل عنصر i
تا عنصر j-1
خواهد شد و عنصر j
در فراخوانی آورده نمیشود.
اگر هر یک از کران بازه را مشخص نکنیم، به طور پیشفرض تا انتهای آن را در نظر خواهد گرفت. یعنی برای فراخوانی اعضای لیست از عنصر دوم به بعد به صورت زیر عمل میکنیم.
lst[2:]
# Output:
# ['b', 'z', 'd', 'a', 'n', 'e', 's', 'h']
در قطعه کد بالا، عناصر از اندیس دوم تا انتهای لیست به ما نمایش داده میشود.
همچنین برای اینکه به بخشی از لیست از ابتدا تا اندیسی مشخص دسترسی داشته باشیم، میتوان به صورت زیر عمل کرد.
lst[:-2]
# Output:
# ['s', 'a', 'b', 'z', 'd', 'a', 'n', 'e']
در اینجا تمام عناصر موجود در لیست را از ابتدای آن تا به دو تا مانده به آخری (اندیس -2) را فراخوانی کردهایم.
تکنیک: دسترسی به میان لیست در پایتون
همانطور که احتمالاً تا به اینجای کار برداشته کردهاید، میتوانیم از اندیسهای مثبت و منفی در هنگام برش دادن لیست استفاده کنیم.
اگر این دو نوع اندیس را به طور همزمان استفاده کنیم، مخواهیم توانست خروجیهای جالب و شگفتانگیزی از لیست خود بگیریم!
برای مثال، فرض کنید در لیست دلخواه خود، میخواهیم دو عنصر اول و دو عنصر آخر لیست را حذف کرده و بقیه را نشان دهیم. برای این کار به راحتی کد زیر عمل خواهیم کرد. به این روش میتوانید لیست را به هر صورتی که مایلید برش دهید!
lst[2:-2]
# Output:
# ['b', 'z', 'd', 'a', 'n', 'e']
تکنیک: دسترسی دنبالهای به اعضای لیست (همراه با گام)
فرض کنید یک لیست از اعداد 1 تا 20 در اختیار دارید و میخواهید اعداد را دو در میان از آن خارج کنید. اولین راهی که احتمالاً به ذهنمان میرسد استفاده از حلقههای پایتونی (نظیر for) برای پیمایش لیست است.
این موضوع را جلوتر بررسی خواهیم کرد. اما این جا یک ویژگی جذاب در هنگام تعریف بازه لیست در پایتون را با هم یاد خواهیم گرفت.
همانطور که آموختید، با گذاشتن یک علامت دو نقطه (:
) میتوان بازهای برای اندیسهای لیست تعریف کرد. اگر پس از تعریف بازه اندیس، یک بار دیگر دو نقطه بگذاریم، خواهیم توانست گام حرکت خود را نیز مشخص کنیم.
برای درک بهتر موضوع به تصویر زیر توجه کنید:
همانطور که در تصویر نیز مشخص است، در ابتدا بازه ابتدا و انتهای حرکت را مشخص کردهایم و سپس گفتهایم که با چه گامی بر روی آنها حرکت کرده و خروجی را به ما بدهد.
یک لیست به نام numbers ایجاد کرده و اعداد 1 تا 20 را در آن قرار میدهیم. سپس به صورت یک در میان، از ابتدا تا انتها آن حرکت میکنیم.
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
numbers[::2]
# Output:
# [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
به اینصورت تمام اعداد فرد موجود در لیست را فراخوانی کردهایم. به همین سادگی!
حال اگر بخواهیم از عنصر پنجم شروع کرده و سه تا سه تا حرکت کنیم چه؟ کد آن چیزی مشابه به کد زیر خواهد شد:
numbers[4::3]
# Output:
# [5, 8, 11, 14, 17, 20]
امیدوارم به خوبی با نحوه برش لیست و تکنیکهای آن آشنا شده باشید و از آن در زمان لازم استفاده کنید.
لیست تو در تو یا لیست چند بعدی در پایتون
عناصر لیستها هر چیزی میتوانند باشند؛ از عدد و رشته گرفته تا یک لیست دیگر! بنابراین اگر عناصر یک لیست، یک لیست دیگر باشد، لیستهای تو در تو (Nested List) را خواهیم داشت.
فرض کنید یک لیست داریم که اطلاعات یک دانشجو را نگهداری میکند. میخواهیم شناسه (id)، اسم و کلیه نمرات او را داشته باشیم.
student = [6214, "Mitra", [18, 17.2, 19.5, 16, 20, 19.9, 20]]
عنصر سوم این لیست، خودش یک لیست است. به همین صورت میتوان لیستهای چند سطحی را نیز ایجاد کرد.
تعریف ماتریس در پایتون
همانطور که میدانید ماتریس یک لیست تو در تو است که اعضای آن اندازه یکسان و مشخصی دارند.
به طور پیشفرض در پایتون ساختمان داده ماتریس نداریم. البته به کمک برخی کتابخانهها و ابزارها میتوان چنین ساختمان دادهای را ایجاد کرده و از آن استفاده کرد.
ما در این جا سادهترین حالت ایجاد یک ماتریس در پایتون را با هم بررسی میکنیم.
برای ایجاد ماتریس، کافی است یک لیست ایجاد کنیم که هر عنصر آن یک لیست دیگر باشد.
mtrx = [[], [], []]
بهتر است در طول برنامه خود همواره بررسی کنیم که اندازه لیستهای داخلی از اندازه مشخص شده بیشتر نشود. راهحل جایگزین بررسی اندازه لیستها، استفاده از تابع اندازه لیست (یا تابع len()
) است که در قسمت توابع کاربردی معرفی میشود.
مثلاً اطلاعات مجموع ساعت کاری کارمندان در سه روز از هفته را در ماتریس زیر نگهداری کردهایم.
logs = [['Mon', '06/22', 'sina', 12],
['Tue', '06/23', 'ehsan', 7],
['Wed', '06/24', 'roya', 10],
['Wed', '06/24', 'sina', 5 ]]
کار با عناصر لیست
علاوه بر دسترسی به عناصر یک لیست، نیاز به وارد کردن، خارج کردن یا تغییر دادهها در لیست خواهیم داشت.
برای هر کدام از این کارها روشها یا توابع مختلفی در پایتون وجود دارد. در ادامه به مهمترین و کاربردیترینِ آنها را بررسی میکنیم.
افزودن عنصر جدید به لیست
برای افزودن یک عنصر جدید به لیست فعلی، سه روش وجود دارد. در دو روش اول، عنصر به انتهای لیست اضافه میشود؛ اما به کمک روش سوم میتوانیم عنصر را در اندیس دلخواه خود قرار دهیم.
لیست nums
را با سه مقدار اولیه ایجاد کرده و سپس به آن عناصری را اضافه میکنیم.
nums = [32, 15, 20]
1. افزودن عنصر جدید به لیست با تابع append
با صدا زدن تابع append()
روی لیست، مقدار ورودی خود را به عنوان عنصر جدید در انتهای لیست درج میکند. این متد صرفاً یک ورودی گرفته و نوع دادهای آن اهمیتی ندارد.
nums.append(11)
print(nums)
# Output:
# [32, 15, 20, 11]
nums.append(73)
print(nums)
# Output:
# [32, 15, 20, 11, 73]
2. افزودن سریع عنصر به لیست پایتون با علامت جمع (+)
این روش که به نوعی اتصال دو لیست به یکدیگر محسوب میشود، میتواند یکی از سریعترین روشهای افزودن عنصر یا عناصر جدید به لیست مورد نظرمان باشد.
در قسمت توابع کاربردی در مورد اتصال دو لیست به یکدیگر بیشتر صحبت میکنیم.
برای درک بهتر، قبل از توضیح چگونگی انجام کار، یک مثال میزنم. به مثال زیر توجه کنید:
nums = [32, 15, 20]
nums = nums + [25]
به همین سادگی، عدد 25 را به انتهای لیست nums
اضافه کردیم!
اگر لیست را چاپ کنیم، میبینیم که لیست ما با مقدار جدید بهروزرسانی شده است.
print(nums)
# Output:
# [32, 15, 20, 25]
حال اگر درون لیست دومی که در حال جمع بستن آن هستیم، چند مقدار مختلف وجود داشت، تمام آنها به انتهای لیست اضافه خواهند شد.
nums = nums + [68, 23, 8]
print(nums)
# Output:
# [32, 15, 20, 25, 68, 23, 8]
تکنیک: خلاصه کردن عملیات جمع
همانطور که احتمالاً میدانید، به جای عبارت x = x + 3
میتوانیم بنویسیم: x += 3
. این قضیه برای جمع بین دو لیست نیز برقرار است.
یعنی دو خط کد زیر معادل یکدیگرند.
nums = nums + [25]
nums += [25]
3. تابع insert
تابع insert()
روی لیست صدا زده شده و دو ورودی میگیرد:
- آرگومان اول: شماره ایندکس مورد نظر ما (به صورت عدد صحیح integer)
- آرگومان دوم: عنصر مورد نظر برای افزودن به لیست
برای شماره ایندکس وارد شده دو حالت وجود دارد:
- ایندکس خارج از محدوده و اندازه لیست است؛ در اینصورت عنصر در انتهای لیست اضافه خواهد شد.
- ایندکس داخل بازه ایندکسهای فعلی است؛ عنصر در خانه مورد نظر درج شده و عنصر فعلی این خانه و خانههای بعد از آن یکی به سمت راست شیفت داده میشوند.
nums = [32, 15, 20]
nums.insert(1, 45)
print(nums)
# [32, 45, 15, 20]
nums.insert(100, 65)
print(nums)
# [32, 45, 15, 20, 65]
حذف عنصر از لیست در پایتون
وقتی میخواهیم مقداری را از لیست حذف کنیم، دو حالت وجود دارد.
- ایندکس عنصر مورد نظر را میدانیم.
- مقدار عنصر مورد نظر را میدانیم.
برای هر یک از این حالات دو دستور متفاوت را معرفی میکنم. از هر کدام میتوانید در جای مناسب خود استفاده کرده و عنصر مورد نظرتان را از لیست حذف کنید.
حذف عنصر با ایندکس به کمک دستور del
دستور del
در پایتون برای حذف متغیرها استفاده میشود. به اینصورت که هر گاه این کلمه کلیدی را قبل از نام متغیر بیاوریم، آن متغیر به طور کامل از درون برنامه ما حذف خواهد شد.
به کمک این دستور، میتوان کل لیست یا یک عنصر از آن را حذف کرد.
اگر نام لیست یا لیست همراه به ایندکس را در جلوی کلمه کلیدی del
قرار دهیم، لیست یا عنصر مورد نظر به طور کامل حذف خواهد شد.
lst = ['s', 'a', 'b', 'z', 'd', 'a', 'n', 'e', 's', 'h']
del lst[3]
print(lst)
# ['s', 'a', 'b', 'd', 'a', 'n', 'e', 's', 'h']
del lst
print(lst)
# Traceback (most recent call last):
# File "<pyshell#79>", line 1, in <module>
# print(lst)
# NameError: name 'lst' is not defined
در خط دوم قطعه کد بالا، اقدام به حذف عنصر موجود در ایندکس 3 لیست (معادل با عنصر z) کردیم. همانطور که در نتیجه مشاهده میکنید، این عنصر از درون لیست حذف شده است.
در خط ششم، کل متغیر لیست را حذف کردهایم. پس از اقدام برای چاپ لیست، با خطای عدم تعریف متغیر در پایتون رو به رو میشویم.
استفاده از متد remove برای حذف عنصر از لیست
این متد بر روی لیست صدا زده میشود و یک ورودی میگیرد. آنچه که به عنوان ورودی گرفته را در لیست جستجو کرده و اولین موردی که مطابقت داشت را حذف میکنید.
در لیست زیر، ما دو بار حرف a را داریم. با صدا زدن متد remove('a')
اولین موردی که در لیست پیدا میشود (یعنی ایندکس 1) حذف خواهد شد.
lst = ['s', 'a', 'b', 'z', 'd', 'a', 'n', 'e', 's', 'h']
lst.remove('a')
print(lst)
# ['s', 'b', 'z', 'd', 'a', 'n', 'e', 's', 'h']
تغییر عنصر در لیست
برای تغییر مقدار موجود در ایندکس مورد نظر، میتوان پس از فراخوانی آن خانه از لیست، اقدام به تغییر آن کنیم. این کار با علامت انتصاب یا =
انجام میشود.
lst = ["sara", "omid", "amir", "roya" ,"ehsan"]
lst[2] = "hamed"
print(lst)
# ['sara', 'omid', 'hamed', 'roya', 'ehsan']
اگر عنصر لیست ما یک مقدار عددی باشد و بخواهیم آن را کاهش یا افزایش بدهیم، به صورت مشابه انجام خواهد شد.
nums = [15, 24, 60]
nums[1] += 2
print(nums)
# [15, 26, 60]
جستجو در لیست
در هنگام کار با لیستها در پایتون، بارها پیش میآید که بخواهیم عنصری را در لیست جستجو کنیم. معمولاً این نوع جستجو برای یک عبارت شرطی استفاده میشود.
بررسی وجود داشتن عنصر در لیست با کلمه in
یکی از کلمات کلیدی که برای جستجو یک عنصر در لیست پایتون استفاده میشود، عبارت in
است.
همانطور که از معنی این کلمه کلیدی مشخص است، بررسی میکند که آیا یک مقدار خاص درون لیست مورد نظر ما وجود دارد یا خیر؟ و نتیجه را به صورت True و False به ما میدهد.
روش استفاده از آن بسیار ساده و راحت است. کافی است آنچه را میخواهید به زبان پایتون بگویید!
فرض کنید لیست عددی زیر را در اختیار داریم:
nums = [15, 24, 60, 55, 74, 33]
میخواهیم بررسی کنیم آیا اعداد 24 و 77 درون این لیست وجود دارند یا خیر؟
در صورتی که هر کدام از آن اعداد وجود داشت یک پیغام متناسب با آن در خروجی چاپ میکنیم.
if 24 in nums:
print("24 is in python list!")
if 77 in nums:
print("77 is in python list!")
# output:
# 24 is in python list!
به همین سادگی!
اگر یک لیست با مقادیر رشتهای داشتیم؛ باز هم نحوه کار به همین شکل میشد.
colros = ["red", "purple", "green", "blue", "yellow", "orange"]
if "red" in colors and "blue" in colors:
print("A mix of these colors can be Violet!")
# output:
# A mix of these colors can be Violet!
جستجوی ایندکس عنصر در لیست
گاهی لازم است شماره اندیس عنصر موجود در لیست را به دست بیاوریم. یا همزمان با جستجوی یک مقدار، در صورت وجود داشتن آن، اندیس آن را در اختیار داشته باشیم.
برای انجام چنین کاری میتوان از متد index()
در لیست پایتون استفاده کرد.
این متد یک مقدار ورودی گرفته و آن را درون لیست ما جستجو میکند.
- اگر مقدار درون لیست پیدا شود، شماره اندیس خانه مورد نظر را به عنوان خروجی به ما میدهد.
- اگر مقدار مورد نظر دورن لیست وجود نداشته باشد، با خطایی از نوع ValueError مواجه خواهیم شد.
با مدیریت خطای زمان اجرا در پایتون، خواهیم توانست به راحتی، علاوه بر جستجو، ایندکس خانه مورد جستجو را نیز پیدا کنیم.
names = ["sara", "omid", "amir", "roya" ,"ehsan"]
try:
target = names.index("omid")
except ValueError:
print("name not found!")
# result:
# target = 1
توابع مهم کار با لیست پایتون
در هنگام کار با لیستها در پایتون با توابع بسیار زیادی رو به رو هستید! توابعی که کارهای بسیاری برایتان انجام میدهند.
در این بخش از مقاله به معرفی چند مورد از مهمترین و پرکاربردترین توابع لیست پایتون میپردازیم.
اندازه لیست با تابع len
یکی از لازمترین ویژگیهای یک لیست، اندازه آن است. از جمله پرکاربردترین توابع هم، همین تابع len()
است.
این تابع، لیست را به عنوان ورودی از ما گرفته و اندازه آن را به ما میدهد. منظور از اندازه، تعداد عناصر موجود در لیست است.
names = ["sara", "omid", "amir", "roya" ,"ehsan"]
print(len(names))
# output:
# 5
خارج کردن آخرین عنصر از لیست با متد pop
با کمک تابع pop()
که روی لیست صدا زده میشود، میتوانیم آخرین عنصر (عنصر موجود در خانه -1) را از آن خارج کنیم.
همزمان با خارج کردن این عنصر، تابع pop()
آن را برای ما باز میگرداند. در نتیجه خواهیم توانست آخرین عنصر را قبل از دور ریختن، درون متغیری ریخته یا با آن کار دیگری انجام دهیم.
در قطعه کد زیر روند کار با این متد را میبینید. ابتدا آخرین عضو موجود در لیست names را بیرون انداخته و چاپ میکنیم. سپس لیست را چاپ کرده تا نتیجه عملیات را مشاهده کنیم.
names = ["sara", "omid", "amir", "roya" ,"ehsan"]
print( names.pop() )
print( names )
# output:
# ehsan
# ['sara', 'omid', 'amir', 'roya']
برعکس کردن لیست با متد reverse (وارونه کردن)
گاهی نیاز داریم یک لیست را سر و ته کنیم! یعنی عضو اول تبدیل به آخرین عضو و آخرین عضو تبدیل به اولین عضو شود!
شاید اولین راهکار ایجاد یک لیست جدید و افزودن عناصر از انتهای لیست قبلی به لیست جدید باشد.
به کمک صدا زدن متد reverse()
روی لیست پایتون، میتوان به راحتی لیست را وارونه کرد.
names = ["sara", "omid", "amir", "roya" ,"ehsan"]
names.reverse()
print( names )
# output:
# ['ehsan', 'roya', 'amir', 'omid', 'sara']
تابع reverse()
لیست را برعکس میکند و به عبارتی لیست اصلی از بین میرود. اگر فقط میخواهید لیست را وارونه در اختیار داشته باشید یا لیست فعلی را به صورت برعکس درون متغیر دیگری ذخیره کنید، از روش زیر استفاده کنید.
معکوس کردن لیست به صورت حرفهای با گام منفی
حال که بحث از وارونه کردن یا معکوس کردن لیست در پایتون شد؛ اجازه دهید یک روش بسیار جالب و به کمک معلومات قبلی خود به شما بگویم.
در قسمت دسترسی به عناصر لیست، روشی برای حرکت با یک گام مشخص در لیست را آموختیم. اگر گام حرکت در لیست را برابر -1 قرار دهیم، حرکت ما وارونه خواهد شد!
در این صورت فقط به لیست برعکس شده دسترسی خواهیم داشت اما آن را برعکس نخواهیم کرد.
names = ["sara", "omid", "amir", "roya" ,"ehsan"]
print( names[::-1] )
print( names )
# output:
# ['ehsan', 'roya', 'amir', 'omid', 'sara']
# ['sara', 'omid', 'amir', 'roya', 'ehsan']
همانطور که میبینید به کمک این تکنیک، لیست برعکس را در خط دوم چاپ کردیم؛ اما لیست اصلی تغییری نکرده است.
حذف تمام عناصر لیست با clear
اگر از اعضای لیست خود خسته شدهاید و میخواهید تمام اعضای آن را از صحنه برنامهتان حذف کنید، متد clear()
برای شماست! 😉
با صدا زدن متد clear()
روی یک لیست، تمام اعضای آن حذف شده و در نهایت یک لیست خالی خواهید داشت.
names = ["sara", "omid", "amir", "roya" ,"ehsan"]
names.clear()
print( names )
# output:
# []
میتوانید تمام توابع و متدهای لیستها در پایتون را در این لینک مشاهده کنید.
پیمایش List در پایتون
پیمایش لیست در پایتون یکی از مهمترین مباحث در بررسی لیستهاست. دو راه برای پیمایش عناصر موجود در لیست داریم.
در ادامه هر دو مورد را با مثال برایتان شرح میدهیم.
پیمایش در لیست با حلقه for و ایندکسها
در این روش برای دسترسی به عناصر لیست، از ایندکس هر خانه استفاده میکنیم.
شیوه کار به این صورت است که متغیر مورد نظر را در بازه مجاز تغییر داده و در هر بار، به عنصر خانه مورد نظر دسترسی مییابیم.
names = ["sara", "omid", "amir", "roya" ,"ehsan"]
for i in range(0, 5):
print( names[i] )
در مثال فوق، متغیر i
را به نوبت معادل 0 تا 4 قرار دادیم و در هر دور از حلقه، مقدار موجود در خانههای 0 تا 4 لیست را چاپ کردیم.
اگر اندازه لیست ثابت نباشد، از تابع len()
برای مشخص کردن اندازه آن استفاده خواهیم کرد. قطعه کد زیر، ساختار بهتری برای این نوع پیمایش در لیستها را نشان میدهد.
names = ["sara", "omid", "amir", "roya" ,"ehsan"]
for i in range( len(names) ):
print( names[i] )
حرکت در لیست با for in
اگر به اندیس هر خانه احتیاجی ندارید و فقط میخواهید به مقادیر موجود در لیست دسترسی داشته باشید، راه سادهتری نیز وجود دارد.
به کمک عبارت کلیدی for in
خواهیم توانست درون یک لیست پیمایش کنیم.
برای درک بهتر، به مثال زیر توجه کنید:
names = ["sara", "omid", "amir", "roya" ,"ehsan"]
for name in names:
print("Hello " + name)
در حلقه موجود در این قطعه کد، در هر دور اجرای حلقه، مقدار موجود در تک تک خانههای لیست درون متغیر name
ریخته میشود.
از این متغیر در طول حلقه میتوانیم استفاده کنیم؛ آن را چاپ کرده، مقایسه کرده و یا عملیات خاصی روی آن انجام دهیم.
جمع بندی: آموزش نوع داده لیست در پایتون
لیست در پایتون یکی از پر کاربردترین ساختمان دادههایی است که در برنامههایمان از آن استفاده میکنیم. اگر با زبان برنامه نویسی دیگری آشنا باشید، بهتر است بگویم لیست به نوعی یک آرایه در پایتون است؛ آرایهای شگفتانگیز با امکانات فراوان. لیستها روی نوع دادهای عناصر خود حساس نیستند و میتوانند عناصری با نوع دادهای مختلف را درون خود جای دهند.
در این مقاله ابتدا به شیوه تعریف کردن لیست پرداختیم. سپس روشهای دسترسی به عناصر لیست را با هم مرور کرده و یاد گرفتیم چگونه عنصری را به لیست اضافه یا از آن حذف کنیم. توانستیم در یک لیست جستجو کنیم و با توابع و متدهای مهم آن آشنا شدیم؛ توابعی چون محاسبه اندازه لیست، برعکس کردن لیست و خالی کردن لیست.
روشهای پیمایش در لیست در پایتون را آموختیم. دو روش اصلی و پر کاربرد برای این کار وجود دارد؛ اول استفاده از ایندکسها و دوم استفاده از عبارت کلیدی for in
در پایتون.
امیدواریم از این آموزش استفاده کرده باشید؛ سؤالات و نظرات خود را از طریق دیدگاههای آموزش با ما به اشتراک بگذارید.
این آموزش بخشی از یک آموزش جامع و قدم به قدم در سبز دانش است: دوره رایگان آموزش پایتون
این آموزش برای همیشه رایگانه! میتونید با اشتراکگذاری لینک این صفحه از ما حمایت کنید یا با خرید یه فنجون نوشیدنی بهمون انرژی بدید!
میخوام یه نوشیدنی مهمونتون کنم
سلام وقت بخیر
یه لیست داریم با طول نا مشخص میخوام اندیس اول [0] رو برام برداره بعد اندیس های [0:2] رو پاک کنه و نتیجه رو برام داخل یه لیست جدید چاپ کنه و این کار رو تا آخر انجام بده.( میشه گفت سه تا سه تا دسته بندی کنه و دو اندیس اخر پاک بشه)
توجه : توی دست آخر ممکنه یک یا دو تا متغیر داشته باشیم. که باز هم اولی رو چاپ کنه
سلام
میتونید از یک حلقه پایتون استفاده کنید که در هر تکرار اندیس اول برداشته بشه و دو اندیس بعدی حذف شوند. این کار رو تا زمانی که لیست خالی میشه انجام بدید و در نهایت لیست جدید رو چاپ کنید.
سلام چهار اسم دارم که میخواهم آن هایی که با حرف آ شروع می شوند را پیدا کنم چکار بای بکنم؟
سلام
میتونید از متد
startswith()
روی رشته استفاده کنید که ببینید آیا با یک کاراکتر خاص شروع شده یا نه؛ مثلname.startswith("آ")
میتونید با حلقه و شرط یا استفاده از list comprehension اسامی که با آ شروع میشن رو مشخص کنید.
سلام چطور میتونم اعداد داخل لیست رو تقسیم بر یک عددی بکنیم ؟
سلام
در سادهترین حالت میتونید از یه حلقه برای پیمایش و تقسیم مقادیر استفاده کنید. همینطور از list comprehension و در حالت حرفهایتر تابع
map()
هم میشه کمک گرفت.تابعی بنویسید که لیستی از اعداد صحیح را به عنوان ورودی دریافت کرده و بزرگترین عضو آن را به عنوان خروجی برگرداند. ( طول لیست
متغیر است.
شما میتونید از حلقهها برای گرفتن یه تعداد (همون طول لیست) مقدار استفاده کنید و اونها رو به لیست پایتون اضافه کنید.
حالا برای پیدا کردن بزرگترین عضو اقدام کنید. میتونه یه حلقه استفاده کنید یا از توابع آماده اگر مجاز هستید.
بهترین سایت آموزش پایتون
خوشحالیم که آموزشهامون رو مفید و خوب میدونید رهای عزیز 🙂
سلام وقت بخیر
چطوری می تونم کروشه های لیستم رو وقتی چاپ می کنم حذف کنم؟
سلام
میتونید به جای چاپ لیست پایتون، با یه حلقه اعضای اون رو کنار هم چاپ کنید.
سلام وقت بخیر ببخشید یک n دارم که از کاربر گرفتم و بهش گفتم G , R ,Y رو به هر تعداد که میخوای وارد کن حالا میخوام اگه توی این رشته دو تا R بود یک پیام بده اگه نبود یک پیام دیگه بده چجوری باید بهش بگم من هر چی با if و for رفتم نتونستم
سلام
یعنی میخواید تعداد حروف G یا R یا Y رو در رشتههایی که بهتون میده بشمرید؟ تا بر اساس اون یه کاری انجام بدید؟
سلام و عرض ادب
امیدوارم که همیشه پاینده باشید
یه لیست دارم حاوی رشته میخوام روی همه رشته ها به صورت جداگانه پیمایش کنه و بررسی کنه که اولین آیتم هر رشته با آخرین آیتم آیا برابر هست یا نه !
[“manam” , “01210”] = lst
اینکه هر کدوم از این عناصر رو به صورت جداگانه بررسی کنه و اگه درست بودن برشون گردونه
ممنون میشم راهنمایی کنید
سلام
بیاید سؤالتون رو یکم کوچیکتر کنیم! میخواید هر آیتم از یه لیست رو چک کنید، پس یه حلقه برای حرکت کردن روی لیست لازم داریم. (پیشنهادم استفاده از for هست)
حالا در بدنهٔ حلقه، یک متغیر دارید (که هر یک از رشتهها هستن) و میخواید کاراکتر اول و آخرش رو بررسی کنید. چون توی رشته به اندیسها دسترسی داریم، میتونید کاراکتر اولی و آخری (اندیس 0 و 1-) رو بررسی کنید. اگر یکسان بود، کاری که میخوای رو انجام بدید.
درست متوجه نشدم که خروجی شما چیه؟! اگه قراره هر رشته که این ویژگی رو داره در یه لیست جدید قرار بدید، توی بدنه شرط (شرطی که ابتدا و انتهای رشته رو چک میکنه) اون رو به لیست جدید اضافه کنید.
سلام،خیلی ممنونم چشم حتما همین کارو میکنم،سپاس گذارم از راهنمایی شما و وقتی ک گذاشتین،پاینده باشین.🙏🏼
سلام،وقتتون بخیر
مطالبتون بسیار آموزنده و عالی هستن،سپاس گذارم برای وقتی ک میزارین و آموزش میدین.
یک سوال
من برنامه ی دفترچه تلفن و نوشتم و قرار هستش ک جست و جو بر اساس نام باشه،مخاطب های من در یک لیست و شماره تلفن های اوناهم در لیست دیگری هستش،چجوری میتونم بر اساس نام جست و بکنم و نام و وارد بکنم و شماره ای برای نام وارد شده رو نمایش بده؟
بدون استفاده از دیکشنری و دستورات و تابع دیگری
لازم ب ذکر هستش ک فقط وایل،فور،ایف و بلدم
سلام
یه راهحل ابتدایی اینه که در یک حلقه سعی کنید اندیس مربوط به اون نام رو از لیست اول پیدا کنید. مقدار معادل همون اندیس در لیست دوم میشه شماره تلفنی که دنبالش هستید.
اگر هم چیزی در لیست اول پیدا نکردید، قاعدتاً اون فرد در دفترچه تلفن نیست و باید به نوعی مدیریتش کنید.
سلام خیلی ممنونم
ولی این کارو کردم منتهی اولین نام و شماره رو پیدا میکنه،مثلا مخاطب های من a,b,c,dهستش و شماره تلفن های اونا،۱،۲،۳،۴ هستش فقط مخاطب a ک شمارش ۱ هستش رو میاره دیگه بقیه رو نمیاره،چیکار کنم؟لطفت کمکم کنید؟
برای پیدا کردن عضو مورد نظر چیکار میکنید؟ باید توی یه حلقه روی لیست اسامی حرکت کنید تا زمانی که اسمی که دنبالشید پیدا بشه.
سلام
میخوام برنامه ای بنویسم که با لیست ۲۰ عدد رابگیرد و کوچکترین و میانگین و جمع اعداد را در خروجی نمایش دهد
سلام
میتونید از ساختار حلقه برای حرکت روی این اعداد و انجام محاسبات استفاده کنید.
سلام وقتتون بخیر
من یه لیست دارم به صورت زیر که نمرات چند نفر هست، چجوی میتونم معدل هر نفر حساب کنم و بگم از کدوم دانش آموزه ؟؟
l=[‘hesam’,’19’,’18’,’17’,’hamid’,’13’,’10’,’20’,’hamed’,’12’,’16’,’17’]
ممنونم
سلام
پیشنهاد اول اینکه اگه محدودیتی ندارید، بهتره برای چنین کاری از دیکشنری استفاده کنید. (کلید میشه اسم فرد و لیستی از نمرات به عنوان مقدار) اینطوری محاسبات و جداسازی راحتتره.
اگر اجباری روی استفاده از این ساختار وجود داره، یه راه حلی که به ذهنم میرسه اینه که درون یه حلقه بررسی کنید، تا زمانی که همچنان عدد دارید (مثلاً با
isdigit()
) محاسبه میانگین رو انجام بده، اما اگه رسید به یه رشته، نتیجه رو برای فرد قبلی ذخیره و برای فرد جدید شروع کنه.سلام میخواستم بدونم چطوری باید برنامه ای بنویسم که یه رشته که شامل چند کلمه هست از کاربر بگیره و بعد بگه کدوم کلمه طولانی تر از همه هستش ممنونم
سلام
میتونید کلمهها رو با اسپیس split کنید. بعدش یه لیست دارید که در معمولترین حالتش درون یه حلقه باید بلندترین رشته رو پیدا کنید.
من اعداد موجود در یک لیست را باهم ضرب کنم
پیامتون سؤالیه؟! میتونید از حلقهها استفاده کنید.
بله سوالی بود -ـ-
بله با کمک حلقه ها این کار رو کردم
اینم کدشه که به دست آوردم 🙂
ایول خیلی خوبه. استفادهی خوبی از map کردید 🙂
سلام و خداقوت
واقعا آموزشتون جامع و کامله
خیلی خوشحالم که با سایت شما آشنا شدم
درود مهدی عزیز
ما هم خوشحالیم که همراهان خوب و یادگیرندهای مثل شما داریم 🙂
سلام روز بخیر . من میخوام تقویم درست کنم
و میخوام از input ماه بگیرم و در لست اسامی ماه ها رو دربیارم و در خروجی چاپ کنم چجوری باید از forاستفاده کنم در لیست که وقتی کاربر عدد وارد کرد اون عدد روی لیستم حرکت کند و اسم ماهو بگه
سلام
یعنی یه لیست دارید از اسامی ماهها؟ و میخواین عددش رو وردی بگیرید و معادل رو چاپ کنید؟ اگه آره چرا حلقه؟ میتونید مستقیم به همون اندیس دسترسی داشته باشید!
چطوری برنامه ای بنویسیم که اطلاعات یک دانشجو رو دریافت و وقتی کد دانشجو رو میدیم اطلاعات دانشجو رو نمایش بده
و بتونیم تغیر بدیم
اگه میخواید بر اساس کد جستجو کنید شاید دیکشنری ساختمان داده بهتری برای نگهداری باشه.
بستگی به خودتون یا نیازتون داره؛ میتونید یک دیکشنری حاوی کد و اطلاعاتش داشته باشید. اطلاعاتش میتونه در یه لیست یا مجدد دیکشنری باشه و هر زمان نیاز بود بهشون دسترسی داشته باشید.
ممنون از آموزش خوبتون . من باید یک برنامه ساده ایجاد کنم که به طور تصادفی افراد را برای شرکت در رویداد انتخاب کنه، کسی که انتخاب میشه فقط باید شرکت کننده اصلی باشه و مهمان شرکت کننده اصلی نباشه.
در واقع باید یه لیست داشته باشم که تو اون لیست اسامی افراد و نوع ( شرکت کننده اصلی یا مهمان) مشخص باشه و با تابع رندم یک شخص( از بین شرکت کننده های اصلی) انتخاب بشه.. حاات بلد نیستم که یک لیست درست کنم که شماره و نام فرد و نوع توش باشه و نمیتونم چجوری بکم که یه عدد از صفر تا طول لیست انتخاب کن که نوعش شرکت کننده اصلی باشه.
برای ذخیرهسازی میتونید از یه ساختار تودرتو استفاده کنید. یعنی هر آیتم لیست اصلی یا یه لیست باشه یا یه دیکشنری که جزئیات شرکتکننده رو داره.
برای حلش راهحلهای مختلفی دارید.
مثلاً اول شرکتکنندههای اصلی رو فیلتر کنید بعد یکی رو رندوم انتخاب کنید؛ یا یکی رو رندوم انتخاب کنید و اگر اصلی نبود، مجدد این کار رو انجام بدید.
سلام چطوری میشه تعدادی عدد رو دریافت کنیم و بین شون یکی درمیون جمع و منها گذاشت و درنهایت جوابش رو نوشت؟
سلام
برای حرکت روی لستها میتونید از حلقهها استفاده کنید. جلسه بعدی در دوره رو ببینید و از ساختار for کمک بگیرید.
-برنامه ای بنویسید که لیستی را از ورودی دریافت کند، سپس اعداد اول موجود در لیست را
بررسی و در لیست جدیدی بریزد.
امتحانه یا تمرین؟!! 😉
با حلقه و ساختار شرطی میتونید این کار رو انجام بدید. البته قبلش بهتره برای تشخیص عدد اول یه راهحلی پیدا کنید که بازم با حلقه میشه محاسبهاش کرد.
-برنامه ای بنویسید که چند رشته را به عنوان ورودی دریافت کند و در لیستی وارد کند، سپس
حروف اول هر رشته را تبدیل به حروف بزرگ کند و در لیست جدید نمایش دهد.
اگه میشه لطفا یه راهنمایی واسه این سوال بکنید
سلام
جلسات گرفتن ورودی با input و حلقهها رو از دوره جامع رایگان ببینید. بعد از اینکه رشتهها رو توی یه لیست داشتید، میتونید حروف اولشون رو بزرگ کنید که اصطلاحاً بهش میگن capitalize و یه متد به همین اسم روی رشتهها داریم.
سلام وقتتون بخیر
اگه داخل یک لیست دو عنصر شبیه بهم داشتیم و خواستیم دومین عنصر رو حذف کنیم!( یعنی اولین یا همون چپ ترین حذف نشه ) چیکار میتونیم بکنیم ؟
سلام
تابع خاصی برای این کار نداریم (یا من سراغ ندارم!) و باید با روشهای ابداعی خودتون مسئله رو حل کنید.
مثلاً اول بررسی کنید چند بار تکرار شده، اگه بیشتر از یک بار بود، عملیات حذف رو طور دیگهای پیش ببرید.
یا اگه آخرین تکرار مدنظرتون هست، یه روش ساده اینه که لیست رو وارونه (reverse) کنید، عنصر رو حذف و دوباره اون رو وارونه کنید.
سلام خسته نباشید
چجوری میتونم ورودی که متن هستش رو تبدیل به عدد کنم.
و بعد داخل ماتریس قرار بدم
سلام
اگر کاراکترهاتون عدده ولی به صورت متن، با تابع
int()
میتونید تبدیل رو انجام بدید. اما اگه حروف هم هستن، خطا میگیرید و باید مدیریت خطا کنید.سلام، خسته نباشید، چطوری بفهمیم اندیس(محل تو لیست(خانه چندم لیسته)) یه متغیر تو لیست چنده؟ با سپاس
سلام
یه متغیر؟ اگه منظورتون یه مقدار خاصه که با متد
index()
که در متن آموزش هم معرفی شده میتونید اندیسش رو پیدا کنید.سلام وقت بخیر
بزرگوار اگه بخوام به اول اسکریپت پسورد اضافه کنم
ک از کاربر پسورد بگیره
چطوری باید بنویسیمش؟
اگه ممکنه راهنمایی کنید باتشکر
سلام
اگه برنامه تمرینیه میتونید یه شرط ساده بذارید (if). اگه درست بود ادامه بده وگرنه خطا بده یا دوباره از کاربر ورودی بخواد.
اگر ابزار خاصی هست، پسورد رو به جای نوشتن در کد، در دیتابیس ذخیره کنید. البته رمزنگاری یادتون نره. در یکی از پروژههای دوره دستگرمی با پایتون چنین کاری رو گام به گام انجام میدیم.
سلام میخواستم بدونم باچه کدی میشه رشته university رو ازاین لیست بدست اورد List=[‘abcd’,[45,’ef’,(‘chamran’,’The university’)],15,18,20]
سلام
باید مشابه روش تودرتو با اندیسها به موردی که میخواید دسترسی پیدا کنید. مثلاً
List[1][2]
تاپل (دوتایی چمران و دانشگاه) رو بهتون میده.وقتی به رشته رسیدید میتونید با split که در جلسه رشتهها معرفی شده تیکه دومش رو جدا کنید.
سلام من می خواستم اون کاری گفتید ( پیدا کردن اپراتر سیم کارت ، جلسه اول فصل2) رو انجام بدم ولی جواب نمیداد ارور نمیداد
مرسی از اموزش خوبتون 😊😊❤
سلام
یکم کدی که فرستاده بودی رو حذف کردم تا فقط جایی که ایراد داره رو داشته باشیم.
دو تا مورد:
یکی اینکه الآن اصلاً شرطی که برای تشخیص همراه اول بودن نوشتید اجرا نمیشه! چرا؟ چون داخل بدنه شرط بالاتریه و شرط اولی هم برقرار نیست! دوباره چرا؟ چون اومدید مقدار شماره موبایل رو با 10 مقایسه کردید و نه اندازهاش رو؛ پس اگه بذارید
len(mobile_number)==10
شرط اولی اجرا میشه. هر چند پرینت کردید «صحیح نیست» که باید تبدیلش کنید به «صحیحه».دومین مورد هم مربوط به نوع استفاده از and هست. باید or باشه (چون فقط یه دونه از این حالات باشه اوکیه) و یکم ساختارش مشکل داره. روش فکر کنید و جلسه شرطها رو دوباره ببینید، اگه به نتیجه نرسیدید بگید که راهنمایی کنم.
و راستی، خیلی خوشحالم که دوره رو دوست داشتی و داری تمرینهاش رو انجام میدی 🙂
مرسی بابت پاسخ گویی تون
سلام، وقتتون بخير
من يه ليست و يک ورودي عددي را از کاربر گرفتم. چطوري ميتونم چک کنم که اگه اين عددي که از کاربر گرفتم در ليست هست، حذفش کنه از ليست؟؟
ممنون ميشم راهنمايي بفرماييد
سلام
با یه ساختار شرطی شبیه
if num in lst
میتونید چک کنید آیا این مقدار در لیست وجود داره یا نه.اگه از متد
remove()
استفاده کنید اولین مقداری که برابر با عدد ورودی باشه رو از لیست حذف میکنه.سلام من یک لیست دو بعدی ساختم و میخواهم عدد ستون ۲و سطر دو را بدست بیارم میشه لطفا راهنمایی کنید
سلام
میتونید از indexing تودرتوی لیستها استفاده کنید؛ چیزی شبیه
pos[1][1]
سلام من می خوام توی کدی که این پایین نوشتم می خوام نمره سه تا دانشجو رو از کاربر بگیرم و بعد بزرگترینشون رو پرینت
اما با خطای تایپ ارور رو به رو می شم اینگار اون داده ها به لیست اضافه نمیشه و لیست خالی می مونه
سلام
شما خط یکی به آخر دارید ویژگی sort رو صدا میزنید. این خروجیش یه built-in method sort of list هست و نه لیست!
پیشنهاد اینکه از تابع
sort()
(به پرانتزها دقت کنید) برای مرتب کردن دادهها استفاده کنید.سلام یه سوال داشتم چطوری تعداد عناصر داخل لیست رو بدست بیارم مثلا یه لیست 7 تایی مثل این دارم
چطوری میشه فهمید 7 تا عنصر داخل لیسته
سلام
میتونید از تابع
len()
که در آموزش معرفی شده استفاده کنید.سلام می خوام یه گذینه ای رو در لیست با یه چیز دیگه عوض کنم
نمی خوام append و remove استفقاده بشه می خوام مستقیما کار منو انجام بده
سلام
چرا از روش دسترسی با اندیس و مقداردهی اون استفاده نمیکنید؟
برنامه ای بنویسید که مقادیر یک ماتریس 10*10 را ازورودی دریافت کند
. مقادیر قطر اصلی و قطر فرعی را چاپ نماید.
جلسه بعدی که در مورد حلقههاست رو ببینید. با حلقهها میتونید چنین کاری رو انجام بدید.
سلام میخوام کدی بنویسم که دو لیست با طول 10 از ورودی دریافت کند و مشخص کند آیا در لیست دوم جفت عدد (a,b) وجود دارد که حاصل جمع آنها برابر مجموع مقسوم علیه های هر عضو (به جز خودش) از لیست اول باشد. در خروجی هر عضو لیست اول و جفت های مربوط به آن را چاپ کند. در صورتی که برای یک عضو جفت عددی وجود نداشت پیغام خطایی برای آن چاپ کند و ورود اطلاعات هر آرایه با وارد نمودن یک کاراکتر به اتمام برسد.
Input:{6, 12, 9}
{2,1,5,4}
Output:
6: (2,4) , (1,5)
12: error
9: error
سلام
پیشنهاد میکنیم برای حل این مسئله از حلقهها کمک بگیرید که روی لیست دوم حرکت کنه. سپس دو تا دوتا جمعشون کنید و با کلمه کلیدی in چک کنین که در لیست اول وجود داره یا نه. اگه وجود داشت میتونید در خروجی اعلام کنید.
سلام.
ممنون از کارشناسای خوبتون که خیلی دقیق راهنمایی میکنن.
من میخوام دوتا لیست رو مقایسه کنم و نتیجه درصدی بهم بده میشه راهنماییم کنید.
p1=[[1,1,1,1,1,1],
[1,0,0,0,0,1],
[1,0,1,1,1,1],
[1,0,0,0,0,1],
[1,0,1,1,1,1],
[1,0,0,0,0,1],
[1,1,1,1,1,1]]
p2=[[1,1,1,1,1,1],
[1,0,0,0,0,1],
[1,0,1,1,1,1],
[1,0,0,0,0,1],
[1,0,1,1,1,1],
[1,0,0,0,0,1],
[1,1,1,1,1,1]]
این هم دوتا لیستی که دارم
سلام
اگه میخوای مقدار درایههای ماتریسها رو با هم مقایسه کنید، شاید ابتداییترین راهحل استفاده از حلقهها باشه.
با حلقه روی درایهها حرکت کنید؛ یه شرط
p1[i][j]==p2[i][j]
داشته باشید که مقادیر مشابه رو بشماره.البته چون ماتریسه یه حلقه تودرتو نیاز دارید؛ یکی برای شماره i و یکی داخلش برای j.
سلام من یک برنامه نوشتم. می خوام که یه یه محاسبه ای رو روی یک تعداد عدد که داخل لیست برام انجام بده. و داخل یک متغییر دیگه بریزه.
و بعد از اون به میزان عدی که داخل number_of_groups هست برام متغیر هایی بسازه که همشون برابر صفرن. آیا اصن راهی برا نوشتنش هست؟
سلام
پیشنهاد میکنم برای ایجاد تعداد نامشخصی متغیر از لیست استفاده کنید. عنصر اول معادل متغیر اولتون و الی آخر…
بنا به نیازتون میتونید از دیکشنری هم مشابهاً استفاده کنید.
سلام ممنونم از سایت خوبتون چون خیلی به من در پروژه دانشگاهییم کمک کرده. فقط یه مشکلی دارم و هرچی گشتم نتونستم مشکلم رو برطرف کنم. فرض کنید من یک لیست دارم به اسم L حالا شامل چند عضو هست و مقدار K که حاصل ضرب نمایی از لیست هست. یعنی من ۳ تا عضو داره لیستم و باید ۳ بار k به دست بیارم اما در حلقه نمیتونم بدست بیارم
L=[1,2,3]
K=exp(L)
سلام
یعنی میخواید خروجیتون یه لیست باشه که اعضاش معادل exp لیست فعلی باشه؟ اگه آره سریعترین راه استفاده از روش list comprehension ـه.
ممنون. نه اینقدر ساده اما هدفم محاسبه یک فرمولی هست که میخوام با استفاده از یک حلقه به اضای تمامی مقادیر داخل لیست این فرمول رو برام حساب کنه یعنی اگر ۱۰ عضو داره لیستم ۱۰ بار k بهم بده.
خب باز هم میتونید از comprehension استفاده کنید. فقط برای محاسبه فرمولتون بهتره یه تابع بنویسید که عدد رو ورودی بگیره و در خروجی نتیجه رو بده.
البته از یه حلقه ساده برای محاسبه مقادیر و اضافه کردنشون به یه لیست جدید هم میتونید استفاده کنید.
سلام چه طور میتونم یکی از عنصر های لیست رو با اون یکی در یک پیمایش جمع کنم؟
برای مثال در یک همچین کدی
سلام
مشابه کاری که انجام دادید میتونید دو عنصر رو جمع کنید.
فقط حواستون باشه که در کدتون اشتباهاً به جای لیست (nums) متغیر عنصر (num) رو فراخوانی کردید!
و اینکه اگه حلقه در برای آخرین عنصر اجرا بشه (یعنی i=len) با خطای index out of range مواجه میشید. بهتره از حلقهای شبیه زیر استفاده کنید:
سلام ببخشید من داخل جملات شرطیم با این ارور رو به رو شدم. :\ super market\main.py. داده هایی که داشتم استفاده می کردم رو از طریق یک کلاس انتقال داده بودم دلیل این ارور چی می تونه باشه.
سلام
فقط بخش انتهایی خطا رو کپی کردید؟ چون به نظر این خطا نیست یا کامل نیست!
سلام اگه یکسری اطلاعات داشته باشیم چطور می تونیم همشون رو به لیست تبدیل کنیم؟
آیا تابع خاصی وجود دارد؟
سلام
این اطلاعات به چه صورتی ذخیره شدند؟ اگه در نوعهای دادهای مجموعهای دیگه مثل تاپل یا set هستند میتونید از تابع
list()
برای تبدیلشون استفاده کنید.سلام چطور میتونم کدی بنویسم که عنصری که بیشترین تکرار رو داخل یه اعدادی که بهش دادیم داره برگردونه؟ میخوام یه کد بنویسم که اولا از اون اعداد میانگین بگیره و بعد اون عددی که بیشترین تکرار رو داشته رو چاپ کنه مثلا به این حالت
[300 , 368.75]
قطعه کدی که تاحالا واسش نوشتم اینه منتها اون 300 رو نمیدونم چجوری بدست بیارم
اینم بگم که خط اول و اخر کد باید این شکلی باشه
سلام
تا جایی که اطلاع داریم تابع یا متدی برای پیدا کردن بیشترین تکرار در لیستها نداریم.
باید یک قطعه کد براش بنویسید. میتونید با یک حلقه، تعداد تکرار هر عنصر رو در لیست بشمارید. مثلاً یک دیکشنری با کلیدی معادل اعضای لیست درست کنید، هر بار اون عنصر رو در لیست دیدید یکی به شمارندهٔ کلیدش اضافه کنید.
سلام.چطور میتونم بعد عدد6000 ،عدد 7000رو در لیست زیر درج کنم؟
list1 = [10, 20, [300, 400, [5000, 6000], 500], 30, 40]
سلام
اگه لیستتون ثابته، میتونید بهصورت تودرتو به لیست داخلی دسترسی پیدا کنید و عضو جدید رو اضافه کنید؛ مثل:
list1[2][2].append(7000)
چه جوری یک لیست بی نهایت تعریف کنیم
میتونید نیازی که دارید رو توضیح بدید؟ list پایتون هیچ محدودیتی در تعداد اعضا نداره. هر زمان که بخواید میتونید بهش اعضایی رو اضافه کنید یا اونها رو حذف کنید. (به تعداد نامحدود!)
سلام
آموزش بسیار خوب و قابل فهمی بود. سپاسگزارم و براتون آرزوی موفقیتهای بیشتر دارم.
سلام آموزش ها خیلی خوب و روان هست یه تعداد فیلم هم تو یوتیوب دارم میبینم به زبان فارسی
مشکلی که هست اینه که وقتی آمزوش ها رو میبینم کامل متوجه میشم اما موقعی که یک مسئله خیلی ساده ازم بخوان نمیدونم چه جوری شروع کنم و چه جوری تموم کنم همه میگن تمرین کن
اصلا نمیدونم با چی باید تمرین کنم چه سوالاتی رو باید تو اینترنت پیدا کنم
سلام
برای تقویت حل مسئله خوبه که برای خودتون مثالهای کوچیک بزنید و سعی کنید با دانشی که دارید پیادهسازیش کنید!
مثلاً فرض کنیم تا الآن لیست و حلقه و شرطها رو یاد گرفتید. میتونید یه برنامه خیلی ساده برای محاسبه میانگین، پیدا کردن بزرگترین عدد، حذف یه مقدار از لیست و … بنویسید.
موقع حل کردنش، هیچ سرچی نکنید، روی یه کاغذ برای خودتون جریان اجرای برنامه رو بکشید و بعد کدنویسی کنید.
در حال ضبط یک دوره مکمل برای پایتون هستیم که قراره چند پروژه جالب رو از کوچیک و در ادامه همین دوره رایگان منتشر کنیم. (احتمالاً هفته دوم اسفند) سعی داریم روند اجرای چند پروژه رو گامبهگام پیش ببریم.
کشیدن روی کاغذ و جستجو نکردن موقع حل رو یادتون نره! 😉 موفق باشی
سلام ممنون بابت اموزش خوبتون
سوالی که دارم اینه چطوری میتونیم دومین یا سومین از یه حرف پیدا کنیم و از اون قسمت به بعد چاپ کنیم
مثال site = http:// site/test/name/famil.php تبدیل به لیست میکنیم حالا میخوایم از سومین / پیدا کنه و چاپ کنه یعنی این چاپ کنه test/name/famil.php
سلام
اگر بخوایم مشابه خودتون عمل کنیم، دقت کنید که باید در هر بار چرخش حلقه بررسی کنیم که آیا اون کاراکتر برابر مثلاً / هست یا نه. شما در هر بار چک کردید که آیا این کاراکتر در لیست وجود داره یا نه (موقعیتش رو در نظر نگرفتید.)
یادتون باشه رشتهها مثل لیست عمل میکنند و نیازی نیست تبدیلشون کنیم.
نمونه ساده اصلاحشده کدتون مشابه زیر میشه:
البته میتونید با کمی تغییرات، از متد index هم کمک بگیرید. اگر دوست داشتید، به جای حلقه، میتونید از متد
find()
بهصورت ترکیبی هم استفاده کنید. (نحوه کدنویسیش بر عهده خودتون ;))سپاس فراوان از شما
تو این چند روز من با سعی و خطا نوشتمش ولی به صورت کد شما نه
یه سوال دیگه ممنون میشم اینم راهنمایی کنید
فرض که ما همچین چیزی داریم
اول بعضی ها دو تا مثل زیر داریم حالا ما چطور میتوانیم چک کنیم اگه با گوگل یا هر ادرس دیگه شروع شده کاری بهش نداشته باش ولی اگه نداره بیاد بزاره اولش.
من خودم نوشتم ولی ۲ بار پشت سر هم قرار میگیره اینجوری
سلام
احتمالا دارید به ابتدای همه عناصر اضافه میکنید. بهتره از یه شرط استفاده کنید.
توجه کنید که ابتدای همه آدرسهاتون https:// وجود داره. پس میتونید این قسمت رو نادیده بگیرید و بقیش رو چک کنید. حتی میتونید uri رو با . جدا کنید و اگه بیشتر از دو تیکه بود یعنی سابدامین هم داره.
سلام ببخشید من در پایتون به یه مشکلی برخوردم میخواستم راه حلش رو بدونم:
من میخام کاری کنم که توی یه لیست مثل
['علي',6,'g','Ali','علي']
بررسی کنه ببینه که “علی” ایا توی لیست هست و بعد تعداد “علی” توی لیست رو چاپ کنه.سلام
برای بررسی وجود یه عنصر داخل لیست میتونید از کلمه کلیدی in (مشابه متن آموزش) استفاده کنید.
برای شمارش تعداد تکرار در لیست پایتون هم روشهای مختلفی دارید که یکی از اونها استفاده از متد
count()
روی لیسته. بهعنوان ورودی مقدارتون رو میدید و تعداد تکرارش رو بهتون برمیگردونه.سلام وقتتون بخیر
من یک لیست حاوی اعداد اعشاری دارم که ممکنه برخی اعداد صفر باشند، میخوام میانگین اعداد لیست رو بدست بیارم با این شرط که اگر بین اعداد صفر بود در میانگین گیری استفاده نشه .
کد میانگین رو نوشتم و خطای ( unsupported operand type(s) for /: ‘tuple’ and ‘int’ ) رو دریافت کردم.
امکانش هست بفرمایید چطور میتونم این کار رو انجام بدم؟؟
سلام
این خطا به این معنیه که یه جایی دارید tuple رو بر int تقسیم میکنید! پیشنهاد میکنیم اگه از حلقه استفاده میکنید داخل حلقه همه متغیرها رو چاپ کنید تا بتونید مشکل رو پیدا کنید.
در هر صورت باید کد trace بشه تا بفهمید کجا داره این اتفاق میوفته.
سلام
چطور میتوانم در پایتون این لیست را به همین شکل int کنم؟
سلام
در سادهترین حالت میتونید از یک حلقه استفاده کنید که هر عضو رو با
int()
همون عضو جایگزین کنه. حلقه حلقهها از دوره رایگانمون رو ببینید.در روش حرفهایتر از ترکیب همین تابع و روش list comprehension میشه استفاده کرد. اگه در ابتدای یادگیری هستید، پیشنهادم راه اوله.
با سلام
امیدوارم حالتون خوب باشه
یک سوال دارم لطف میکنید راهنمایی کنید ممنون
ایجاد لیستی به طول 50از اعداد رندم بین 1تا 100را تولید کند و سپس به صورت دلخواه عدد را انتخاب کند و زوج و فرد بودن عدد را مشخص کنند
سلام
برای تولید اعداد رندوم میتونید از ماژول random استفاده کنید. برای زوج و فرد بودن هم یک باقیمانده تقسیمش بر 2 کافیه.
سلام یک سوال داشتم
یک ربات دارم قراره که چهار لامپ رو روشن کنه
این چهار لامپ در حالت ال مانند قرار گرفتن
سلام
میتونید اشیاء (متغیرهای) این لامپها رو داخل لیست نگه دارید و در یک حلقه کارهای روشن کردن رو براشون انجام بدید.
با سلام و خسته نباشید و ممنونم از توضیحات عالی. من یه لیست دارم و میخوام جای دو عضو مشخص رو باهم عوض کنم. یعنی مثلا عضوی با اندیس 1 بیاد جای عضو با اندیس 2 و عضو با اندیس 2 بره جای عضو با اندیس 1. باید چیکار کنم؟ ممنونم از شما
سلام
تا جایی که اطلاع داریم متد پیشفرضی برای این کار نیست. در سادهترین حالت، میتونید مقدار اندیس اول رو در یک متغیر نگه دارید، مقدار دومی رو در اولی بریزید و در نهایت اندیس دوم رو با مقدار متغیر آپدیت کنید.
سلام. من میخوام ورودی رو که عدد باشه از کاربر بگیرم و در چند عدد که توی لیست قرار دارن تقسیم کن. یعنی در تک تک مقدار های درون لیست تقسیم کنم. سورس کدش چیه؟
سلام
میتونید از حلقهها که در جلسه بعدی آموزش داده شده استفاده کنید؛ یک راهحل بهتر، استفاده از تابع map در پایتون هست.
سلام خسته نباشید. من می خواستم یک کلمه ای رو با استفاده از دستور append به لیستم اضافه کنم و داخل یک متغییر دیگه بریزم. اما متغییر دوم رو پایتون نمی شناسه و وقتی ازش می خوام چاپ کنه جواب می ده: none ممنون می شم کمک کنید
سلام
متد
append()
صرفاً مقدار رو به لیست پایتون اضافه میکنه و خروجی نداره. به همین دلیل None میگیرید.اگر میخواید یک لیست جدید داشته باشید، از عملگر + استفاده کنید؛ مثل:
سلام وقت بخیر چجوری میتونم برنامه ای بنویسم که در یک خط نام چند شهر و در خط بعدی دمای هوای آن شهر ها را گرفته و در ادامه اگر دمای هر شهری زیر 15 درجه بود، جلوی آن شهر بنویسید هوا سرد هست.
سلام
با
input()
میتونید از کاربر ورودی بگیرید. در جلسه مربوطه مثالی از گرفتن چند ورودی زده شده. بعدش به کمک حلقه روی لیست دماها و به کمک شرط (if temp < 15
) مقادیر مورد نظرتون رو چاپ کنید.ممکنه از دیکشنری برای نگهداری اطلاعات استفاده کنید، ساختار زیباتری داشته باشید.
(برنامه بنویسید که سه عدد را از کاربر بگیرد سپس آنها را مرتب کند.) به روش لیست باید انجام بدم ؟؟ چطوری میشه؟؟
اگر محدودیت خاصی ندارید میتونید از لیست استفاده کنید. برای مرتبسازی هم از متد
sort()
روی لیست میشه استفاده کرد.سلام وقتتون بخیر
ممنون از توضیحاتتون
من لیستی از اعداد دارم که می خوام اعداد رو با هم مقایسه کنه و بعد اگر اختلافشون 1 نبود یک واحد به قبلی اضافه کنه و بین این دو تا وارد کنه در اصل می خوام عدد جدید داخل لیست اضافه بشه نه اینکه بره آخر.
چکار کار کنم ؟؟ (:
سلام
میتونید از متد
insert()
روی لیست استفاده کنید. مثلاًnums.insert(1, 5)
عدد 5 رو در ایندکس 1 وارد میکنه و همه اعضای بعدش رو یک واحد شیفت میده به جلو.نحوه کار با aiter رو هم بزارید .ممنون
سلام
منظورتون سازنده Asynchronous برای کلاس در پایتون هست؟ یا چیز دیگری؟
سلام وقتتون بخیر چجوری میتونم مقدار های ورودی رو وارد یک لیست کنم؟
سلام
در انتهای آموزش گرفتن ورودی در پایتون مثالی برای گرفتن لیست از کاربر زدیم. میتونید ازش ایده بگیرید. البته نحوه کارتون بستگی به این داره که دادهها رو به چه شکل از کاربر دریافت میکنید.
سلام روزتون بخیر
من میخوام یک برنامه ای بنویسم که یکسری ورودی های زیادی بدهم و بعد برایم دسته بندی کند
مثل لیست تراکنش ها در کیف پول
ممنون میشم راهنمایی کنید که از کجا شروع کنم
سلام
ابتدا باید به این فکر کنید که این دادهها به شکل قراره ورودی داده بشن؟ متن هست؟ اکسل هست؟ از دیتابیس فراخوانی میکنید؟ و در مرحله دوم روی این فکر کنید که این دستهبندی بر چه اساسی انجام میشه؟ بر اساس زمان یا مثلاً مبدأ بانکی؟ و در انتها به دنبال پیادهسازی پردازشهای مربوط به برنامه برید.
امیدوارم سرنخ شروع و ادامه رو گرفته باشید.
سلام ببخشد من در پایتون وقتی میخوام یه حرفی رو به لیست اضافه کنم از append استفاده میکنم اما الان هروقت میزنم ارور بهم میده
میخواستم ببینم جریانش چیه؟
سلام
چه خطایی میگیرید؟ متد append در لیست پایتون معمولا شرط خاصی برای استفاده نداره.
با سلام باید چگونه[‘۲’،’۳’]رو تبدیل به intکنم
سلام
آموزش عدد در پایتون رو ببینید؛ تابع
int()
رو میتونید برای تبدیل رشته به عدد صحیح استفاده کنید.سلام خسته نباشید ممنون از توضیحات خوب و مفیدتوک من میخاستم یک تابع بنویسم که یک پارامتر داشته باشه از نوع لیستی از اعداد!
بعد از فراحوانی تابع، اگر اعداد اول و آخر لیست یکی بودن True چاپ کنه اگر یکی نبودن False چاپ کنه
و اینکه دقیق نمیدونم باید چیکار کرد ممنون میشم راهنمایی کنید
سلام مهسای عزیز
آموزش تابع در پایتون رو ببینید. وقتی تابع تعریف شد کافیه یک شرط ساده
if l[0]==l[-1]
قرار بدید تا یکسان بودن مقدار اول و آخر رو بررسی کنه.راستی اگر سوالی داشتید لطفا یک بار در سایت ثبت کنید. همیشه سوالات برنامه نویسی به ترتیب پاسخ میدیم.
واقعا خیلی مفصل و زیبا توضیح دادین…خیلی متشکر بابت مطالب آموزنده و روانتون
سلام
میخوام ببینم از یه عنصر چند عدد در یک لیست هست باید چیکار کنم؟
سلام
تابع خاصی برای این کار وجود نداره. مگر این که از کتابخانه
collections.Counter
استفاده کنید.پیشنهاد میکنیم یک لیست جدید بسازید از اعضای لیست قبلی که برابر مقدار مورد نظرتون هستند. اندازه این لیست، پاسخ شماست.
سلام خسته نباشید ممنون بابت مطالب مفیدتون
ی لیستی از چند رشته دارم میخام اندازه هرکدوم رو بعد از پیمایش با حلقه for بصورت یکجا و داخل ی لیست جدید داشته باشم اما ارور میگیرم میشه کمک کنین
سلام
از تابع
len()
برای اندازه رشته استفاده میکنید؟ چه خطایی میگیرید؟این اروری هس ک میده
TypeError: ‘int’ object is not iterable
سوالی ک میخام حل کنم اینه ک ی متن رو میگیره از کاربر بعد کلمه ای ک بیشترین کاراکترو داره نمایش میده
در یک بخشی از کدتون میخواید با حلقه روی عدد حرکت کنید که این خطا رو میده. داخل خطا شماره خط رو بهتون میده.
احتمالا دارید درست حلش میکنید، فقط یک جایی اشتباهاً به جای لیستی از اعداد، روی خود عدد دارید حلقه رو اجرا میکنید.
سلام خیلی ممنونم از سایت بسیار خوبتون مطالب مفیدی بود. اما من یه سوالی داشتم. من میخوام یه کدی بزنم که کاربر بیاد یه لیستی رو طبق اعدادی که میخواد داخلش باشه رو بدست بیاره ولی خب من نمی دونم که این کاربر چه اعدادی رو میخواد بزنه و شاید داخلش اعداد تکراری هم باشه برای همین کدی که میخوام بزنم باید اعداد تکراری رو حذف کنه و فقط یکی از اعداد داخل لیست باشه . میشه لطفا بگید چطوری و با چه طوابعی کار کنم؟ خیلی ممنونم.
سلام. برای اینکه در لیست مقادیر تکراری نداشته باشید، دو تا راه حل ساده دارید.
1- موقع گرفتن ورودی، بررسی کنید اگر اون عدد توی لیست پایتون شما بود که دیگه به لیست اضافه نکنید.
2- اگر همه اعداد رو یکجا میگیرید، میتونید لیست رو به مجموعه پایتون یا set تبدیل کنید و دوباره به لیست برگردونید. مثل
list( set( my_list ) )
بسیار سپاسگزارم
عالی و کامل و خیلی روان توضیح داده بودین خیلی ممنونممم
خوشحالم که برای پیشرفتتون آموزش میبینید. موفق باشید.
سپاسگزارم . خوب بود .
عالی بود
سپاس🌻🙏🏻
خوشحالم که براتون مفید بوده
بسیار کامل، دقیق، خوب و قابل فهم توضیح دادید. سپاس بیکران و خدا قوت 🙂
خوشحالم که براتون مفید بوده و ممنون بابت انرژی خوبی که به ما میدید!
بسیار عالی
سلام
فقط با استفاده از پایتون برنامه ای بنویسید که یک آرایه 3 × 3 با اعداد 0 تا 8 را با ترتیب دلخواه از کاربر بگیرد و سطر و ستونی که صفر در آن قرار گرفته است را به کاربر اعلام کند. بعنوان مثال در آرایه زیر عدد 0 در سطر 2 و ستون 1 قرار گرفته است.
سلام
به کمک آموزش گرفتن ورودی در پایتون میتونید مقادیر رو از کاربر بگیرید و به کمک حلقه در پایتون روی سطر و ستونهای ماتریسی که ساختید حرکت کنید.
سلام وقت بخیر متشکرم از مطلب مفیدتون . سوال من اینه که اگر بخوایم عناصر یه ماتریس دو در دو رو از ورودی بگیریم و طی یک پیام مناسب عناصر سطر و ستونشون و در خروجی نمایش بدیم برنامش به چه شکله؟ یعنی از ورودی یک ماتریس دو در دو گرفته بشه و در خروجی بگه اعداد چیا هستن و ماله چه سطرو ستونی ان؟
سلام
سؤالتون یکم کلی هست و نمیشه در یک دیدگاه پاسخ مفصلی داد. یک راهنمایی برای نحوه کار میکنم امیدوارم که بتونید استفاده کنید:
مطمئناً برای ماتریس باید از لیست تو در تو استفاده کنید. بعد با آموزش گرفتن ورودی python مقادیر ماتریس رو از کاربر بگیرید. اگر نیاز به تفکیک ورودی هست هم از تابع
split()
که توی رشته متنی پایتون توضیح داده شده استفاده کنید.سلام ممنونم از اموزشتون من یک سوال داشتم چه طور میتونم با پیمایش در لیست هر بار دو اندیس مختلف رو باهم مقایسه کنم ؟
سلام، خوشحالم که براتون مفید بوده.
پیشنهاد میکنم از حلقههای تو در تو پایتون استفاده استفاده کنید. و یا در حلقه پیمایش لیست از متغیر اندیس (مثلاً i) استفاده کنید تا به اندیسهای
i-1
یاi+2
و … دسترسی داشته باشید.سلام. ممنون از آموزش مفیدتون. من یه سوال داشتم اگر بخایم از یه لیست مثلن تمام اعداد بیشتر از یه مقداری رو حذف کنیم باید چکار کنیم. پیمایش لیست درست کار نمیکنه انگار
سلام
اگر با حلقه پیمایش کنید، اندیس هر عددی که بزرگتر بود رو نگه دارید و در انتهای کار، اندیسها رو حذف کنید.
یک روش دیگه هم اینه که اگر فرض کنیم لیست ما l1 هست یه لیست l2 به صورت
[i for i in l1 if i >= 18]
تعریف کنید، نتیجه دلخواهتون رو میگیرید.موفق باشید.
با سلام. بسیار عالی
خوشحالم که براتون مفید بوده. موفق باشید.
سلام خیلی جامع و خوب بود مرسی
فقط من یه سوال دارم برای لیست تو لیست که گفتید اسمش میشه ماتریس ، اگه بخوایم به یه عضو از یه لیست توی لیستمون دسترسی پیدا کنیم باید چی کار کنیم ؟
مثلا همون مثال ساعات کاری:
مثلا ما میخوایم پرینت کنه روز کاری احسان رو یا مصلا ساعت کاری رویا رو
اون وقت چی باید بزنیم ؟
سلام
برای دسترسی به هر عنصر ماتریس باید طوری عمل کنید که انگار دو تا لیست پشت سر هم هست. مثلا برای دسترسی به روز کاری احسان از
logs[1][1]
و برای رویا ازlogs[2][1]
استفاده میکنیم.اگر سطح لیست در پایتون بیشتر هم بشه، به همین روش میتونید دسترسی داشته باشید.
سلام واقعا مفید بود ممنون 🙏🏻🙏🏻🙏🏻
سلام
خوشحالم که براتون مفید بوده
سلام ممنون از آموزش خوبتون. اگه بخوایم اندیس دو عنصر داخل یک لیست رو جابه جا کنیم دستوری هست براش؟ مثلا طبق آخرین مثالتون جای سارا و رویا رو عوض کنیم…
سلام
خوشحالم که آموزش براتون مفید بوده
یه روش جالب برای تغییر همزمان متغیرها در پایتون وجود داره که به کمک اون میتونید این کار رو انجام بدید. فقط با کد زیر:
به نام دوست
درود. بسیار ساده و کاربردی توضیح دادی. ممنونم همیشه پیروز و بهروز باشید.
ممنونم از انرژی خوبتون!
ایشالا همیشه موفق باشید.
بسیار مفید و روان توضیح دادین. ازتون خیلی ممنونم.
بسیار خوشحالم که با مطالعه این مقاله، دانش خودتون رو افزایش دادید!
موفق باشید.