در حوزه برنامهنویسی پایتون، شمارش آیتمها یکی از کارهای اساسی است که وقت کار با دادهها بهتناوب پیش میآید. خوشبختانه، پایتون ابزار کمکی به نام تابع count را فراهم کرده است تا برای انجام دادن وظایف مربوط به شمارش بهکار برده شود. فرقی نمیکند هدف از اجرای عملیات، شمارش تعداد تکرار کلمات خاصی درون متن باشد یا بررسی عناصر تکراری درون لیست یا تحلیل تعداد رخداد عناصر مختلف درون مجموعهای از دادهها. تابع Count در پایتون میتواند قابل اعتماد بودن خود را ثابت کند. در این مطلب از مجله فرادرس، نکات مهم مربوط به تابع Count در پایتون را بررسی خواهیم کرد و کاربرد این تابع را در هر دو حالت ساختار ذخیره داده متن و لیست آزمایش خواهیم کرد. همچنین کاربردهای عملی را نشان خواهیم داد که ثابت کنیم این تابع در مقابل انواع مسائلی که در برنامهنویسی رخ میدهند، انطباقپذیری بالایی دارد. در ادامه به بررسی روشهای شمارش در پایتون خواهیم پرداخت و خواهیم دید که چگونه تابع Count در پایتون کار کردن با دادهها را آسانتر میکند.
نمای کلی از تابع Count در پایتون
تابع count()
در پایتون ابزاری قدرتمند و «درونی» (Built-in) است که برای شمارش رخدادهای خاصی در لیستها یا تاپلها بکار میرود. چندکاره بودن این تابع باعث شده برای سناریوهای مختلفی که در زمان کدنویسی پیش میآیند بسیار مفید واقع شود. از تحلیل متن گرفته تا رفع کردن موارد تکراری در پایگاه داده و «آنالیز تناوب دادهها» (Data Frequency Analysis)، همه جا این تابع قدرتمند به کمک توسعهدهندگان میآید. بهطور خاص برای تجزیه و تحلیل «فایلهای گزارشات» (Log Files) مفید عمل میکند. مانند کمک به برنامهنویسان و مدیران سیستم برای اینکه اتفاقات خاص در فایلهای مربوط به گزارشها را ردیابی کنند .
در این راهنما، به بررسی مثالهای پر استفاده و کاربردهای تابع Count در پایتون خواهیم پرداخت. تابع count ابزاری بسیار پر کاربرد است که همزمان مناسب «دانشمندان داده» (Data Scientists)، توسعهدهندگان اپلیکیشنهای اینترنتی و برنامهنویسان مبتدی است. تسلط به این تابع، بدون توجه به سطح تجربه کاربران، عمل شمارش را در مسائل پایتونی آسان میکند و کارایی برنامهنویسی را به میزان زیادی افزایش میدهد.
سینتکس متد Count در پایتون
متد Count در پایتون اغلب برای شمارش تعداد تکرار عنصری خاص در لیست بکار میرود. در پایین شکل پایه سینتکس این دستور را نمایش دادهایم.
پارامتر های متد count
این متد دو پارامتر اساسی دارد که در تصویر کد بالا دیدهاید. در زیر هر دو پارامتر را توضیح دادهایم.
- list_name: نام لیستی را نمایندگی میکند که میخواهید درون آن به جستوجو بپردازید.
- Object: عنصری را نشان میدهد که میخواهید تعداد تکرار آن را بشمارید.
این متد میگوید که عنصر مورد نظرتان چندبار در لیست ظاهر شده است. در ادامه مثالهای از اجرا متد list.count()
آوردهایم.
مثال اول
در این مثال ساده، میخواهیم تعداد تکرار عنصرها را در لیست شمارش کنیم.
خروجی مثال بالا به شکل زیر میشود.
3
در موردی که دیدیم، تعداد دفعاتی را که حرف b
در لیستی به نام my_list
ظاهر میشود با کمک خط کد my_list.count(‘b’)
شمارش کردیم. خروجی عملیات برابر با 3
بود زیرا حرف b
فقط 3
بار در لیست تکرار شده است.
مثال دوم
در این مثال کمی پیچیدهتر، میخواهیم تعداد تکرار لیستها و تاپلها را درون لیستی بشماریم.
خروجی کد بالا به صورت زیر است.
2 2
میبینید که این متد توانایی جستوجوی لیستها و تاپلها را نیز دارد. دقیقا به دنبال لیست و تاپلی میگردد که به عنوان پارامتر دریافت کرده است. کم و زیاد شدن عنصرها تاثیری در دقت این متد ندارد.
مثال سوم
در مثال بعد قصد داریم به خطاهای استثنا در رابطه با این تابع بپردازیم.
در نمونه کد بالا قصد داریم تعداد تکرار عدد 1
را در لیستی به نام my_list
محاسبه کنیم. اگرچه بر اثر اشتباهی که مرتکب شدیم دو عدد 1
و 2
را به عنوان ورودی به متد ارسال کردهایم. مواجه شدن با پیغام خطای TypeError
به معنی وجود مشکلی در کار است. تابع list.count()
کمک میکند که تعداد تکرار چیزی را درون لیستها محاسبه کنیم.
مثال متد Count در پایتون
متد list.count()
میتواند تعداد تکرار اعضا را از هر نوع دادهای مانند عدد و رشته، در لیست محاسبه کند. در ادامه برای هر کدام مثالی میبینیم.
مثال اول
در این مثال شمارش اعداد صحیح را در لیست انجام خواهیم داد.
همانطور که دیدید در نمونه بالا، متد list.count()
تعداد تکرار عدد 2
را در لیست محاسبه کرده است.
مثال دوم
در این مثال تعداد تکرار را برای نوع داده رشته محاسبه خواهیم کرد.
در تصویر بالا، متد list.count()
تعداد تکرار رشته apple
را در لیست کلمات میشمارد که برابر با عدد 3 است.
متد list.count()
برای وظایف گوناگونی مانند شمارش عنصرهای مشخص، بررسی مقادیر تکراری، تجزیه و تحلیل تناوب دادهها و شمارش وقایع در فایلهای گزارشات بهکار میرود.
شمارش عناصر لیست یا تاپل درون لیست
این متد با شمارش تعداد تکرار دادهها درون لیست یا تاپل کمک بسیاری به وظایف مربوط به آنالیز و مدیریت دادهها میکند.
استفاده از تابع Count در پایتون
برای اینکه از تابع count()
استفاده کنیم نیاز به لیست یا تاپلی داریم بهعلاوه دادهای که برای تکرار آن جستوجو کنیم. به سینتکس تابع آمده در پایین توجه کنید.
1list_or_tuple.count(element)
پارامترهای سینتکس بالا به شرح زیر هستند.
- list_or_tuple: لیست یا تاپلی که باید مورد جستوجو قرار بگیرد.
- element: عنصری که باید تعداد تکرارهای آن محاسبه شود.
در ادامه باز هم مثالهای دیگری از روش استفاده تابع Count در پایتون را بررسی خواهیم کرد.
مثال اول
تکرار مثالها به خاطر جنبههای متفاوتی که است که میتوانند دلیلی برای ایجاد کدها باشند. در مثال پایین اجرای عملیات شمارش را در لیست میبینیم.
در این مثال، لیستی به نام my_list
داریم. از تابع count()
استفاده میکنیم تا تعداد تکرار عدد 2
را در لیست محاسبه کنیم.
مثال دوم
در مثال پایین اجرای عملیات شمارش را روی نوع داده تاپل میبینیم.
متد Count در پایتون همانطور که در تصویر میبینید بر روی نوع داده تاپل، همانند لیستها به خوبی عمل میکند.
کاربردهای عملی
متد Count در پایتون از متدهای اساسی برای کار بر روی دادهها است. به همین دلیل چندین کاربرد عملی مختلف برای این متد وجود دارد که در ادامه فهرست کردهایم.
- شمارش کلمات: از تابع Count در پایتون برای محاسبه تعداد ظهور هر کلمه در متنها مخصوصا متنهای بزرگ استفاده میشود.
- کشف تکرارها: از تابع Count در پایتون میتوان برای تشخیص دادن موارد تکراری در لیستها و جداول پایگاه داده استفاده کرد.
- تناوب داده: تابع Count برای تجزیه و تحلیل اینکه مقادیر چگونه در مجموعههای داده ظاهر میشوند نیز کاربرد دارد.
- تجزیه و تحلیل فایل گزارش: برای بررسی تناوب رخدادها یا تطابق لاگهای ورودی در «فایل گزارش» (Log File) نیز میتوان از تابع Count در پایتون استفاده کرد.
- کشف پر تکرارترینها: برای یافتن پر تکرارترین آیتم در هر لیست یا تاپل هم میتوان از تابع count()
استفاده کرد.
بهطور خلاصه، متد Count در پایتون ابزار پرکاربردی است که برای شمارش عناصر موجود در لیستها و تاپلها بهکار میرود که باعث میشود گزینه بسیار مناسبی برای برنامهنویسی مسائل مربوط به محاسبات و وظایف مرتبط با «تحلیل داده» (Data Analysis) باشد.
فایل گزارش چیست؟
«فایل گزارش» (Log file) منبع داده اصلی برای مشاهدهپذیری شبکه است. «لاگ فایل» به فایل دادههایی میگویند که توسط کامپیوتر تولید شده باشند و شامل اطلاعاتی درباره الگوهای استفاده، فعالیتها و عملیاتی است که درون سیستم عامل، اپلیکیشن، سرور یا هر دستگاه دیگری به وقوع میپیوندند. فایلهای گزارشات نشان میدهند که منابع بهطور مناسب و بهینه به اجرای عملیات میپردازند یا نه.
استثنائات همراه با استفاده از متد Count در پایتون
توانایی متد Count در پایتون برای محاسبه اینکه چیزی چندبار در لیست ظاهر شده است این متد را به گزینه بسیار مناسبی برای تشخیص گزینههای تکراری و ردیابی دوره تناوب دادهها، تبدیل کرده است. اما باید با دقت از این متد استفاده کرد.
استثنائات استفاده از متد Count در لیست ها
توجه کنید که استفاده از چندین پارامتر به همراه تابع list.count()
باعث ایجاد خطای TypeError
میشود. این تابع فقط باید یک پارامتر داشته باشد که در واقع همان آیتمی است که باید مورد بررسی قرار گیرد.
در تصویر پایین مثالی از خطایی که در خط قبل بیان شد را نمایش دادهایم.
استفاده از دو پارامتر برای تابع list.count()
در تصویر بالا باعث ظهور خطای TypeError
خواهد شد.
کاربردهای عملی
متد list.count()
کاربردهای عملی گستردهای دارد که در ادامه به بیان چند مورد از آنها پرداختهایم.
شمارش عناصر خاص
برای محاسبه اینکه چیزی چندبار در مجموعهی داده ظاهر شده است از تابع list.count()
استفاده کنید. این تابع به پیدا کردن الگوی تکرار آیتمها کمک میکند.
استفاده از دیکشنری برای ثبت و ضبط مقدارها
میتوانید تعداد آیتمها را در دیکشنری ذخیره کنید تا به سادگی اطلاعات را واکشی و بررسی کنید. مخصوصا زمانی که با مقادیر گستردهای از آیتمهای گوناگون در لیستهای پایتون سروکار دارید، این ویژگی بسیار مفید خواهد بود. برای مثال به تصویر زیر توجه کنید.
مثالهای بالا نشان میدهند که تابع list.count()
در پایتون چگونه تعداد ظهور عناصر را در لیستها محاسبه میکند و نتایج را در دیکشنری یا لیست دیگری ارائه میدهد. این متد برای وظایفی مانند آیتم شماری، بررسی تکرار و جمعآوری داده کاربرد دارد.
چگونه از تابع Count در پایتون استفاده کنیم؟
تابع Count در پایتون شبیه به کارآگاه درونی است که میتواند بگوید چیزی چندبار در لیست یا تاپل پیدا میشود. در ادامه به بررسی روش استفاده از این تابع برای ساختارهای نوع دادهی متفات پرداختهایم.
شمارش عناصر لیست
در کد پایین اولین و رایجترین کاربرد تابع Count در پایتون، یعنی شمارش عناصر لیست را نمایش دادهایم.
خروجی مثال بالا عدد ۳ است.
در تصویر کدی که بالا دیدیم بررسی کردیم که عدد 2
چندبار در لیست my_list
وجود داشته. این بررسی به وسیله متد count()
اتفاق افتاد و نتیجه برابر عدد سه شد.
شمارش عناصر تاپل
در تصویر کد پایین برای نحوه شمارش عناصر در تاپل، مثال آوردهایم.
خروجی کد بالا برابر با عدد ۳ خواهد بود.
در مثال بالا تعداد تکرار وقوع عدد 2
را در تاپل با استفاده از متد Count در پایتون بررسی کردیم.
شمارش تکرار آیتم ها در رشته ها
در کد نمایش داده شده در پایین روش محاسبه تکرار آیتمها را در رشته با مثال به نمایش گذاشتهایم.
متد count با نوع دادهی «رشتهها» (Strings) نیز کار میکند. برای مثال در کد بالا، کلمه «Python» را در رشته my_text
، دو بار پیدا کردیم.
مدیریت خطا: پیدا کردن عناصر ناموجود در لیست
در تصویری که پایین آوردهایم، وضعیتی را شبیهسازی کردیم که متد count()
پارامتری بگیرد که در لیست وجود ندارد.
خروجی تصویر بالا صِفر است.
اگر چیزی که به دنبال آن میگردید در لیست یا تاپل مورد نظرتان که متد را بر روی آن فعال کردهاید، موجود نباشد، متد Count در پایتون عدد 0
را برمیگرداند. به هرحال این عدد یعنی هیچ تکراری وجود نداشته است. مثالهای بالا به صورت تصویری نشان میدهند که چگونه به کمک متد Count در پایتون به دنبال عناصر مختلف در ساختارهای داده مختلف بگردید.
متد count برای شمارش آیتم ها روی نوع داده رشته
متد Count در پایتون میتواند تعداد دفعاتی که قسمت خاصی از یک رشته یا کاراکتر در متنی ظاهر میشود را نیز محاسبه کند. این متد برای پیدا کردن و محاسبه تعداد تکرار حروف الفبا یا کلمات یا حتی عبارتها بسیار پر کاربرد است.
مثالهایی که در ادامه آوردهایم، برای نشان دادن انواع جستوجوی تکرار آیتمها روی نوع داده رشته استفاده میشود.
شمارش زیر رشته ها در رشته
در تصویر زیر مثالی را برای شمارش زیر رشتهها در رشتهای بزرگتر، آوردهایم.
در مثال بالا، متنی به نام my_text
داریم و از متد count()
استفاده کردهایم تا تعداد دفعاتی که کلمه «Python» در این متن ظاهر شده را محاسبه کنیم. خروجی برابر با عدد ۲ است که در نهایت با کمک تابع print()
این خروجی را نیز نمایش دادیم.
عملیات شمارش به همراه ایندکس های شروع و پایان
لطفا به تصویر زیر دقت کنید. عملیات شمارش به همراه ایندکسهای شروع و پایان، یکی از رفتارهای تخصصی در زمینه تحلیل متن است.
خروجی تصویر بالا عدد ۱ است.
در پایتون برای کنترل محدوده جستوجوی شمارش میتوانید از ایندکسهای اختیاری شروع و پایان، استفاده کنید. در مثال بالا تعداد تکرار کلمه «Python» را بین کاراکترهایی در موقعیت ۲۰ تا ۴۵ رشته اصلی، میشماریم که جواب برابر با ۱ میشود. این اعداد بر حسب کاراکتر به کاراکتر محاسبه میشوند. فضای خالی هم یک کاراکتر محاسبه میشود.
اگر بخواهیم که برای شمارش عنصری در رشته فقط محل شروع را علامتگزاری کنیم، بعد از پارامتر مربوط به عنصر عدد مربوط به موقعیت نقطه شروع را بر اساس ایندکس به تابع count()
باید ارسال کنیم. لطفا مثال زیر را نگاه کنید.
1string1 = 'ab bc ba ab bc cb xz qs ab hj ab ja ab'
2
3occurenceOfSubString = string1.count('ab', 11)
4
5print('Occurence of substring in string1: ', occurenceOfSubString)
خروجی کدهای بالا به شکل زیر است.
Occurrence of a substring in string1: 3
روال اتفاقاتی که در مثال بالا افتادند به صورت زیر است.
- رشتهای ایجاد کردیم و آن را در متغیری قرار دادیم.
- تعداد رخداد زیر رشته ab
را در رشته اصلی با شروع از موقعیت یازده تا انتهای رشته، محاسبه و در متغیری ذخیره کردیم.
- در نهایت متغیر را پرینت کردیم و تعداد تکرار رشته ab
را به عنوان خروجی نمایش دادیم.
در ادامه میخواهیم برای جستوجو در رشته فقط حد انتها تعیین کنیم یعنی تابع count()
از ابتدای رشته شروع به شماردن تکرار زیر رشتهای کند که به عنوان پارامتر ارسال کردهایم و تا جایی که مشخص کردیم پیش برود نه تا انتهای رشته. برای اینکه به تابع count()
فقط عنصر پایانی محدوده جستوجو را بدهیم نمیتوانیم مثل دفعه قبل رفتار کنیم. متد count، هر پارامتر اختیاری را که بعد از عنصر مورد استفاده تابع برای شماردن به تابع ارسال کنیم به عنوان نقطه شروع درنظر میگیرد. برای دادن حد انتها، باید پارامتر شروع را هم بدهیم و این کار را به وسیله ارسال مقدار خالی با کد None
به عنوان پارامتر اول انجام میدهیم.
به کد زیر که به عنوان مثال نوشتهایم لطفا توجه کنید.
1string1 = 'ab bc ba ab bc cb xz qs ab hj ab ja ab'
2
3occurenceOfSubString = string1.count('ab', None, 15)
4
5print('Occurence of substring in string1: ', occurenceOfSubString)
خروجی کد بالا به صورت زیر است.
Occurrence of a substring in string1: 2
روال اتفاقاتی که در مثال بالا افتادند به صورت زیر است.
- رشتهای ایجاد کردیم و آن را در متغیری قرار دادیم.
- از اول رشته اصلی تا موقعیت پانزده که خودمان به عنوان حد نهایی جستوجو به تابع count ارسال کردیم تعداد تکرار زیر رشته ab
را محاسبه و در متغیری ذخیره میکنیم.
- در نهایت متغیر را پرینت کردیم و تعداد تکرار رشته ab
را به عنوان خروجی نمایش دادیم.
شمارش زیر رشته هایی که وجود ندارند
مثالی از شمارش برای یا فتن تکرار زیر رشته هایی که وجود ندارند، در تصویر زیر آوردهایم.
خروجی اجرای کد تصویر بالا برابر با صِفر است.
اگر بدنبال قسمت خاصی درون متنی میگردید و آن قسمت خاص از رشتهها در آن بخش از متن وجود ندارد. برای نمونه فرض کنید در متن my_text
به دنبال کلمه Java میگردید. متد count()
خواهد گفت که در متن my_text
به تعداد صفر بار کلمه Java تکرار شده است.
متد count برای لیست ها در پایتون
توانایی متد Count در پایتون برای اینکه نشان دهد، آیتم خاصی چندبار در لیستی ظاهر شده است باعث میشود که این متد برای پیدا کردن الگوی تکرار عناصر و یا مقدارهای تکراری گزینه بسیار خوبی باشد. در ادامه مثالهایی از استفادههای گوناگون این متد را در لیستها آوردهایم.
شمارش عناصر درون لیست
در تصویر پایین عملیات ساده برای شمارش تکرار عنصری خاص را در لیست پیادهسازی کردهایم.
خروجی کد بالا برابر با عدد ۳ است.
در مثال بالا، لیست my_list
را داریم و از متد count()
برای محاسبه اینکه چندبار عدد 2
در لیست تکرار شده استفاده میکنیم. خروجی برابر با عدد ۳ خواهد بود که در نهایت، خروجی را بر روی مانیتور چاپ کردیم.
شمارش عناصری که از جنس عدد صحیح نیستند
در تصویر پایین نمونهای از شمارش عناصر غیر عددی -در اینجا رشتهای- را آوردهایم.
خروجی تصویر بالا عدد ۲ است.
متد Count در پایتون میتواند چیزهایی بجز اعداد را هم بشمارد. در این مورد بهخصوص، متد count()
تعداد ظهور کلمه apple را در لیست my_list
میشمارد.
شمارش عناصر ناموجود
در تصویر زیر مثالی میبینیم از شمارش عنصری که در لیست وجود ندارد.
خروجی تصویر بالا عدد صفر است.
اگر عنصر مورد نظرتان که به دنبال آن میگردید در لیست وجود نداشته باشد متد Count در پایتون مقدار صفر را برمیگرداند. در مثال زده شده در بالا هیچ تعداد از عدد 6
در لیست my_list
وجود ندارد.
متد count خودش ابزاری عملی برای کار روی اعداد و عناصر داخل لیست است. برای کاربردهای گوناگون این متد، در بخش بعدی نمونههای را به عنوان مثال آوردهایم.
کاربردهای عملی متد count بر روی لیست ها
در این بخش نمونههایی از کاربرهای عملی این متد را بهطور خلاصه به تصویر کشیدهایم.
شمارش تعداد تکرار عنصری خاص در لیست
در تصویر پایین مثالی از شمارش تعداد تکرار عنصر خاصی را در لیست آوردهایم.
خروجی تصویر بالا بهصورت زیر است.
The element 2 appears 3 times in the list.
در این سناریو، نیاز داریم که تعداد تکرار آیتم خاصی، بهطور مثال عدد 2
را، در لیست محاسبه کنیم. این مثال ثابت میکند که متد count برای کار کردن با دادههای ایستا هم بسیار خوب عمل میکند.
بررسی مقادیر تکراری در لیست
در ادامه مثالی از بررسی مقادیر تکراری را در لیست به تصویر کشیدهایم.
خروجی تصویر بالا بهصورت زیر است.
2 is duplicated 3 times.
متد Count در پایتون میتواند عناصر تکراری را در لیستها کشف کند. در مثال بالا فهمیدیم که عدد 2
سه بار تکرار شده است.
یافتن تناوب عنصرهای مشخص شده در مجموعه داده
به تصویر زیر نگاه کنید. در این تصویر برای یافتن الگوی تکرار دادهها در مجموعهی داده فرضی لیست، مثال زدهایم.
خروجی کد تصویر شده در بالا بهصورت زیر است.
- عدد 1
یک بار در مجموعه داده ظاهر شده است.
- عدد 2
دو بار در مجموعه داده ظاهر شده است.
- عدد 3
سه بار در مجموعه داده ظاهر شده است.
- عدد 4
چهار بار در مجموعه داده ظاهر شده است.
از متد count()
میتوان برای یافتن الگوی تناوب دادهها درون هر مجموعه دادهای استفاده کرد. در اینجا ما الگوی تناوب را برای هر عنصر بهصورت مجزا محاسبه کردهایم.
سوالات متداول
در ادامه به بررسی پر تکرارترین سوالات متداول پیرامون متد Count در پایتون پرداختهایم.
آیا زمانی که عملیات شمارش را در ساختارهای تودرتوی عمیق انجام می دهیم متد Count در پایتون با محدودیت یا مشکلی مواجه میشود؟
درحالی که متد count میتواند عناصر درون لیستها یا تاپلهای تودرتو را بشمارد، ممکن است در مواجه با ساختارهای عمیق تودرتو تاثیرگزاری خود را از دست بدهد و باعث شود کد نیز کمی ناخوانا شود. در چنین موقعیتهایی بهتر است که تابع مخصوص به این کار را به صورت «بازگشتی» (Recursive) تعریف کنید و قدم به قدم به درون ساختار داده خود حرکت کنید تا از عمیقترین لایه، شروع به حل مسئله کنید.
چه تفاوتی بین تابع count و کلاس Counter از ماژول collections در پایتون برای شمارش عناصر وجود دارد؟
متد count، تابعی است که برای شمارش عناصر موجود در لیست، تاپل یا رشته بکار میرود اما درعوض، کلاس ()collections.Counter ابزار قدرتمندی برای محاسبه آیتمها درون اشیا پیمایشپذیر مانند لیستها است و فرایند شمارش را در شکلی شبیه به دیکشنری پیادهسازی میکند.
چگونه می توان به وسیله تابع count عناصری را با توجه به شرایط خاص در لیست ها شمارش کرد؟
تابع count رخدادهای عنصر خاصی را میشمارد. برای اینکه تکرار عناصر را با توجه به شرایط خاص بشماریم، باید از روش «خلاصه لیست» (List Comprehension) برای لیستها یا حلقهها استفاده کنیم تا عناصر را براساس شرایط تعیین شده فیلتر کنیم و لیست جدیدی بسازیم. سپس تابع count را روی لیست فیلتر شده اِعمال کنیم.
آیا زمانی که عناصری را در ساختار داده اشتراکی بین چندین ترد -نخ- میشماریم، تابع Count در پایتون thread-safe است؟ پردازش در شرایط گفته شده، دچار خطا نمی شود؟
تابع count به صورت پیشفرض در زمانی که میخواهیم عناصری را در ساختار داده اشتراکی بین چند ترد بشماریم خوب عمل نمیکند و اصطلاحا thread-safe نیست. اگر چندین ترد دارید که سعی میکنند همزمان عملیات شمارش را انجام دهند، باید پیشنیازهای امنیتی مانند لاکها را در نظر بگیرید تا اطمینان حاصل کنید که همه چیز به خوبی کار میکنند.
تاثیر عملکرد استفاده چندباره از تابع Count در پایتون برای شمارش عناصر مختلف درون لیست یا تاپل یکسان چیست؟
استفاده چندباره از تابع Count در پایتون برای شمارش عناصر مختلف درون لیست یا تاپل یکسان میتواند باعث شود که چندین بار به دادههای یکسانی رجوع کنیم که به نوبه خود عامل موثری در کندشدن اجرای برنامه است، مخصوصا زمانی که حجم زیادی داده داشته باشیم. در چنین موقعیتهایی، بهتر است که در ابتدا به سراغ لیست برویم و سپس شروع به شماردن چند چیز مختلف، همراه با هم کنیم. این روش راندمان بالاتری دارد.
جمع بندی
متد Count در پایتون شمارندهای پراستفاده است که به سرشماری رخدادهای درون لیستها، تاپلها و رشتهها میپردازد. برای انجام وظایف مختلف کامپیوتر مانند «تجزیه و تحلیل داده» (Data Analysis) و «شناسایی تکرارها» (Identifying Repetitions) گزینه بسیار ارزشمندی است. این ابزار، کدنویسی را راحتتر میکند و به برنامهنویسها کمک میکند که سریعتر کار کنند.
اما مراقب باشید، اگر سعی کنید بهصورت یکباره تعداد زیادی فرمان به این تابع بدهید، ممکن است که کار نکند و خطای TypeError برگرداند. متد Count در پایتون برای کارهایی نظیر تجزیه و تحلیل دادهها، «کشف خطا» (Error Detection) و حل مسئله، کمکرسان بسیار خوبی است و این تواناییها متد count را در دنیای برنامهنویسی پایتون بسیار مفید کرده است. در این مطلب از مجله فرادرس تلاش کردیم که در سادهترین صورت و در بیشترین حالت ممکن کاراییهای این متد را پوشش دهیم و تقریبا هیچ نکتهای را ناگفته باقی نگزاریم.
source