تابع enumerate یک تابع از پیشساخته شده و موجود در خود برنامه (Built-in) در پایتون (python) است! در ادامه با چند مثال، به طور کامل با این تابع آشنا میشیم! اما اگر باشه یه توضیح کلی در مورد نحوه کار این تابع بدم (هرچند که شاید هنوز متوجه نشید، ولی آخر این مطلب قشنگ متوجه میشین!): تابع enumerate برای یک لیست، عناصر و اندیسهای آن را با هم در نظر میگیرد! (لطفا تا آخر مطلب بخونین، واقعاً نمیشه در یک خط توضیح داد!)
فرض کنید لیستی داریم به صورت زیر!:
a=["Mohammad","Ali","Hasan","Hossein"]
و فرض کنید پیش خودمون میگیم ای کاش یه تابعی میبود که مثلاً میگفت: عنصر با اندیس 1 لیست شما، Mohammad است! عنصر با اندیس 2 لیست شما، Ali است و …!
خبر خوش اینکه همچین تابعی هست! تابع enumerate هم شماره اندیس (index) و هم خود مقدار (value) رو ذخیره میکنه و نمایش میده! مثلاً برای همین مثال خودمون اگر بنویسیم!:
print(list(enumerate(a)))
توجه کنید که کد بالا، میایم با تابع list، خود enumerate رو به لیست تبدیل میکنیم، بعد چاپش میکنیم!
که خروجی عبارت است از:
[(0, 'Mohammad'), (1, 'Ali'), (2, 'Hasan'), (3, 'Hossein'), (4, 'Sajjad')]
همانطور که میبینید، نوشته شده!:
اندیس 0: Mohammad
اندیس 1: Ali
اندیس 2: Hasan
و الی آخر…!
اما یه چیزی!: شاید پیش خودتون بگید، این که خیلی بده که اندیس رو از صفر شروع میکنه! من دوست دارم از یک شروع کنه اندیس گذاری رو!
جواب اینه که این تابع، اصلاً فراتر از این رو برای شما فراهم میکنه! شما میتونید به این تابع بگید که حتی از چه اندیسی شروع کنه به اندیس گذاری! که این رو در مثال دوم بررسی میکنیم!
حالا این دفعه فرض کنید، میخوایم همون لیست مثال 1 رو، enumerate بکنیم، منتهی این دفعه میخوایم از اندیس 1 شروع کنه به اندیس گذاری! پس اینجوری مینویسیم!
print(list(enumerate(a,1)))
که خروجی این قطعه کد به صورت خواهد بود!:
[(1, 'Mohammad'), (2, 'Ali'), (3, 'Hasan'), (4, 'Hossein')]
در واقع اینبار هم دقیقاً مشابه مثال یک است، با این تفاوت که اندیسگذاری از یک شروع میشود!
خب واقعیت اینه که آموزش ما همینجا تمومه! اما برای اینکه چندتا مثال دیگه از این مبحث ببینیم و این مبحث رو با مبحث های دیگه هم یکم قاطی کنیم!! میخوایم چندتا مثال دیگه هم باهم کار کنیم!
مثالهایی که در ادامه مطرح میکنیم، یکم مخلوط بحثهای مختلف است! پس اگر به دلیل یه سری پیشنیازها مثالهای زیر رو خیلی متوجه نمیشین نگران نباشین! چون عملاً تا همون مثال 2 کلاً آموزش به پایان رسید و از اینجا به بعد فقط میخوایم یکم پرکاری کنیم!
قطعه کد زیر را در نظر بگیرید:
a=["Mohammad","Ali","Hasan","Hossein"] for i,j in enumerate(a,2): print(i,j)
خروجی آن به شرح زیر خواهد بود!: [توجه کنید که در کد بالا اندیسگذاری رو از 2 در نظر گرفتیم!]
2 Mohammad 3 Ali 4 Hasan 5 Hossein
a="Koolac" for i, v in enumerate(a): print("{}) {}".format(i,v*3))
حروجی!:
0) KKK 1) ooo 2) ooo 3) lll 4) aaa 5) ccc
a="Koolac" [print(v*i) for i, v in enumerate(a,1)]
خروجی!:
K oo ooo llll aaaaa cccccc
تعداد دیدگاه | 3 |
تعداد بازدید | 15.6K |
تاریخ انتشار | 19/03/2019 |
تاریخ بروزرسانی | 19/03/2019 |
نویسنده | گروه آموزشی کولاک |