آموزش count در پایتون به زبان ساده + مثال عملی و آموزنده
![count در پایتون](https://maktabkhooneh.org/mag/wp-content/uploads/2023/04/How-to-Use-Counter-in-Pythons-Collections-Module_Watermarked.673c6dc8ee2e-780x470.png)
شمارش (عملیات count در پایتون) عملیاتی اساسی در برنامهنویسی است و پایتون نوعی متد داخلی به نام count() ارائه میدهد که به ما امکان خواهد داد بهراحتی وقوع یک عنصر خاص را در یک لیست، رشته پایتون (python string) یا هر مجموعه داده دیگری بشماریم. شمارش در پایتون میتواند در سناریوهای مختلف بسیار مفید باشد، از کارهای ساده مانند یافتن تعداد تکرار یک کاراکتر خاص در یک رشته تا عملیات پیچیدهتر مانند تجزیهوتحلیل مجموعه دادهها یا پردازش مقادیر زیادی متن. در این مقاله، نکات و نکات متد count در پایتون، از جمله سینتکس، مزایا و مثالهای عملی آن بررسی میکنیم تا به شما کمک کند از count() در برنامههای پایتون خود استفاده کنید.
سینتکس متد count در پایتون
متد count در پایتون نوعی تابع (function) داخلی در پایتون است و برای لیستها، رشتهها و مجموعههای تکرارپذیر دیگر در دسترس خواهد بود. سینتکس count() به شرح زیر است:
iterable<span class="token punctuation">.</span>count<span class="token punctuation">(</span>element<span class="token punctuation">)</span>
در سینتکس فوق:
- iterable: این بیانگر مجموعه تکرارپذیر است (مثلاً لیست، رشته) که در آن میخواهیم وقوع عنصر را بشماریم.
- element: این عنصری است که میخواهیم رخدادهای آن را در مجموعه متغیرهای قابلشمارش (count variable python)، شمارش کنیم.
مزایا و کاربردهای count در پایتون
تابع count() در پایتون (count function python) چندین مزیت و موارد استفاده دارد که موارد زیر از مهمترین آنها محسوب میشوند.
- سادگی و کارایی: متد count() روشی ساده و کارآمد برای شمارش رخدادهای عنصری خاص در یک مجموعه داده ارائه میکند. این متد مهم ما را از نوشتن حلقههای پیچیده نجات میدهد و مقدار کد مورد نیاز برای شمارش رخدادها را کاهش خواهد داد و در کنار آن کد ما را مختصرتر و خوانا میکند.
- تطبیقپذیری: متد count در پایتون را میتوان با عناصر تکرارپذیر مختلف از جمله لیستها، رشتهها، تاپلها و موارد دیگر استفاده کرد. این باعث میشود که ابزاری همهکاره برای شمارش رخدادها در ساختارهای داده مختلف باشد.
- پیچیدگی زمانی: متد count در Python دارای پیچیدگی زمانی O(n) است که n طول تکرارپذیر است. این بدان یعنی که میتواند به سرعت وقوع یک عنصر را حتی در مجموعه دادههای بزرگ بشمارد و آن را برای برنامههای کاربردی حیاتی مناسب میکند.
- مدیریت خطا: متد count در زبان پایتون بسیار قدرتمند است و مدیریت خطای داخلی را ارائه میدهد. به طور خودکار مواردی را که عنصر در تکرار یافت نمیشود، کنترل میکند و از خطاهای احتمالی در کد ما جلوگیری میکند.
پیشنهاد مطالعه: کتابخانه های پایتون + مزایا، معایب و کاربرد هرکدام
مثال های عملی count در پایتون
سناریوی اول: شمارش تعداد تکرارها در لیست:
فرض کنید لیستی از اعداد داریم و میخواهیم وقوع یک عدد خاص را بشماریم. میتوانیم از متد count در پایتون مانند قطعه کد زیر برای این هدف استفاده کنیم:
numbers <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">,</span> <span class="token number">4</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">5</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">6</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">7</span><span class="token punctuation">,</span> <span class="token number">8</span><span class="token punctuation">,</span> <span class="token number">9</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">]</span>
element <span class="token operator">=</span> <span class="token number">2</span>
count <span class="token operator">=</span> numbers<span class="token punctuation">.</span>count<span class="token punctuation">(</span>element<span class="token punctuation">)</span>
<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"The element </span><span class="token interpolation"><span class="token punctuation">{</span>element<span class="token punctuation">}</span></span><span class="token string"> occurs </span><span class="token interpolation"><span class="token punctuation">{</span>count<span class="token punctuation">}</span></span><span class="token string"> times in the list."</span></span><span class="token punctuation">)</span>
خروجی این مثال به صورت زیر است:
سناریوی دوم: شمارش تعداد تکرار کاراکتری خاص در یک رشته:
همچنین میتوانیم از متد count() برای شمارش وقوع کاراکتری خاص یا زیر رشته خاص در یک رشته استفاده کنیم. به مثال زیر توجه کنید:
text <span class="token operator">=</span> <span class="token string">"سلام. به وبسایت مکتب خونه خوش آمدید. مکتب خونه یکی از بزرگترین وبسایت های آموزشی در زبان فارسی است و هم اکنون زدیک به دو دهه است که در این زمینه فعالیت مستمر دارد."</span>
char <span class="token operator">=</span> <span class="token string">"ک"</span>
count <span class="token operator">=</span> text<span class="token punctuation">.</span>count<span class="token punctuation">(</span>char<span class="token punctuation">)</span>
<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"The character '</span><span class="token interpolation"><span class="token punctuation">{</span>char<span class="token punctuation">}</span></span><span class="token string">' occurs </span><span class="token interpolation"><span class="token punctuation">{</span>count<span class="token punctuation">}</span></span><span class="token string"> times in the string."</span></span><span class="token punctuation">)</span>
خروجی این مثال به صورت زیر است:
خروجی نشان میدهد که از کاراکتر خاص مثلا «ک» در متن، ٦ بار استفاده شده است.
سناریوی سوم: شمارش تعداد کلمات در یک متن:
متد count در پایتون زمانی میتواند مفید باشد که بخواهیم تعداد کلمات خاصی را در یک متن بشماریم. در اینجا مثالی آورده شده است که تعداد دفعات کلمه “مکتب خونه” را در یک متن محاسبه میکند:
text <span class="token operator">=</span> <span class="token string">"سلام. به وبسایت مکتب خونه خوش آمدید. مکتب خونه یکی از بزرگترین وبسایت های آموزشی در زبان فارسی است و هم اکنون زدیک به دو دهه است که در این زمینه فعالیت مستمر دارد."</span>
word <span class="token operator">=</span> <span class="token string">"مکتب خونه"</span>
count <span class="token operator">=</span> text<span class="token punctuation">.</span>count<span class="token punctuation">(</span>word<span class="token punctuation">)</span>
<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"The word '</span><span class="token interpolation"><span class="token punctuation">{</span>word<span class="token punctuation">}</span></span><span class="token string">' occurs </span><span class="token interpolation"><span class="token punctuation">{</span>count<span class="token punctuation">}</span></span><span class="token string"> times in the text."</span></span><span class="token punctuation">)</span>
خروجی قطعه کد فوق به صورت تصویر است:
سناریوی چهارم: شمارش رخدادها در لیستهای تودرتو:
متد count() همچنین میتواند برای شمارش رخدادها در لیستهای تودرتو استفاده شود. در اینجا یک مثال آورده شده است که در آن ما فهرستی از لیستها را داریم که نشان دهنده شبکهای از اعداد است و میخواهیم وقوع یک عدد خاص را در کل شبکه بشماریم:
grid <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token punctuation">[</span><span class="token number">4</span><span class="token punctuation">,</span> <span class="token number">5</span><span class="token punctuation">,</span> <span class="token number">6</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token punctuation">[</span><span class="token number">7</span><span class="token punctuation">,</span> <span class="token number">8</span><span class="token punctuation">,</span> <span class="token number">9</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">]</span><span class="token punctuation">]</span>
element <span class="token operator">=</span> <span class="token number">2</span>
count <span class="token operator">=</span> <span class="token builtin">sum</span><span class="token punctuation">(</span>sublist<span class="token punctuation">.</span>count<span class="token punctuation">(</span>element<span class="token punctuation">)</span> <span class="token keyword">for</span> sublist <span class="token keyword">in</span> grid<span class="token punctuation">)</span>
<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"The element </span><span class="token interpolation"><span class="token punctuation">{</span>element<span class="token punctuation">}</span></span><span class="token string"> occurs </span><span class="token interpolation"><span class="token punctuation">{</span>count<span class="token punctuation">}</span></span><span class="token string"> times in the grid."</span></span><span class="token punctuation">)</span>
خروجی این به صورت تصویر زیر است:
مثالی عملی و پیچیده برای count در پایتون
فرض کنید یک سند متنی بزرگ مانند یک کتاب یا مقاله داریم و می خواهیم فرکانس های کلمه را در سند تجزیهوتحلیل کنیم. برای رسیدن به این هدف میتوانیم از متد count در پایتون استفاده کنینم. در اینجا ما یک سند متنی فرضه دانلود کردیم و میخواهیم که با متد count آن را تجزیه و تحلیل کنیم.
در زیر تصویری از سند متنی ما آورده شده است:
حال قطعه کد ما برای انجام این کار به صورت زیر است:
<span class="token comment"># Load the text document</span>
<span class="token keyword">with</span> <span class="token builtin">open</span><span class="token punctuation">(</span><span class="token string">"document.txt"</span><span class="token punctuation">,</span> <span class="token string">"r"</span><span class="token punctuation">,</span> encoding<span class="token operator">=</span><span class="token string">"cp1252"</span><span class="token punctuation">,</span> errors<span class="token operator">=</span><span class="token string">"ignore"</span><span class="token punctuation">)</span> <span class="token keyword">as</span> <span class="token builtin">file</span><span class="token punctuation">:</span>
text <span class="token operator">=</span> <span class="token builtin">file</span><span class="token punctuation">.</span>read<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token comment"># Clean the text by removing punctuation and converting to lowercase</span>
<span class="token keyword">import</span> string
text <span class="token operator">=</span> text<span class="token punctuation">.</span>lower<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span>translate<span class="token punctuation">(</span><span class="token builtin">str</span><span class="token punctuation">.</span>maketrans<span class="token punctuation">(</span><span class="token string">""</span><span class="token punctuation">,</span> <span class="token string">""</span><span class="token punctuation">,</span> string<span class="token punctuation">.</span>punctuation<span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token comment"># Split the text into words</span>
words <span class="token operator">=</span> text<span class="token punctuation">.</span>split<span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token comment"># Create a dictionary to store word frequencies</span>
word_freq <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token punctuation">}</span>
<span class="token comment"># Iterate through the words and count their occurrences</span>
<span class="token keyword">for</span> word <span class="token keyword">in</span> words<span class="token punctuation">:</span>
<span class="token keyword">if</span> word <span class="token keyword">in</span> word_freq<span class="token punctuation">:</span>
word_freq<span class="token punctuation">[</span>word<span class="token punctuation">]</span> <span class="token operator">+=</span> <span class="token number">1</span>
<span class="token keyword">else</span><span class="token punctuation">:</span>
word_freq<span class="token punctuation">[</span>word<span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token number">1</span>
<span class="token comment"># Sort the words by their frequencies in descending order</span>
sorted_words <span class="token operator">=</span> <span class="token builtin">sorted</span><span class="token punctuation">(</span>word_freq<span class="token punctuation">.</span>items<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> key<span class="token operator">=</span><span class="token keyword">lambda</span> x<span class="token punctuation">:</span> x<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">,</span> reverse<span class="token operator">=</span><span class="token boolean">True</span><span class="token punctuation">)</span>
<span class="token comment"># Print the top 10 most frequent words</span>
<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"Top 10 Most Frequent Words:"</span><span class="token punctuation">)</span>
<span class="token keyword">for</span> word<span class="token punctuation">,</span> freq <span class="token keyword">in</span> sorted_words<span class="token punctuation">[</span><span class="token punctuation">:</span><span class="token number">10</span><span class="token punctuation">]</span><span class="token punctuation">:</span>
<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"</span><span class="token interpolation"><span class="token punctuation">{</span>word<span class="token punctuation">}</span></span><span class="token string">: </span><span class="token interpolation"><span class="token punctuation">{</span>freq<span class="token punctuation">}</span></span><span class="token string"> occurrences"</span></span><span class="token punctuation">)</span>
خروجی مثال فوق به صورت زیر است:
توضیح برنامه پایتون (python program) بالا:
- بارگذاری سند متنی: ما با بارگیری سند متنی به عنوان ورودی کاربر (user input) با استفاده از قابلیتهای مدیریت فایل داخلی پایتون شروع میکنیم. فایل “txt” در حالت خواندن با استفاده از تابع “open()” باز میشود و محتویات فایل در متغیر “text” خوانده و ذخیره خواهد شد.
- پاکسازی متن: در مرحله بعد، متن را با حذف علائم نگارشی و تبدیل تمام کاراکترها به حروف کوچک پاکسازی میکنیم. این کار با استفاده از روش “lower()” برای تبدیل متن به حروف کوچک و روش “translate()” با “punctuation” برای حذف تمام علائم نگارشی از متن انجام میشود.
- متن را به کلمات تقسیم میکنیم: ما متن پاکسازی شده را با استفاده از متد “split()” به کلمات تقسیم میکنیم، که متن را در کاراکترهای فضای خالی مانند فاصله و خطوط جدید تقسیم میکند و لیستی از کلمات را برمیگرداند.
- ایجاد دیکشنری برای فرکانسهای کلمات: ما یک دیکشنری خالی به نام “word_freq” برای ذخیره واژه فرکانس ایجاد میکنیم. در این دیکشنری، کلیدها کلمات منحصربهفرد در متن هستند و مقادیر، تعداد دفعات آنها خواهد بود.
- تکرار از طریق کلمات و تعداد رخدادها: از طریق لیست کلمات تکرار انجام میشود و از متد count() (count method) برای شمارش تکرار هر کلمه در لیست استفاده میکنیم. اگر کلمه قبلاً در دیکشنری “word_freq” وجود داشته باشد، تعداد آن را با استراتژی word_freq[word] += 1 افزایش میدهیم. در غیر این صورت، آن را با word_freq[word] = 1 به دیکشنری اضافه خواهیم کرد.
- مرتبسازی کلمات بر اساس فرکانس: ما از تابع “sorted()” با یک تابع کلید سفارشی برای مرتب کردن کلمات در دیکشنری “word_freq” بر اساس فرکانس آنها به ترتیب نزولی استفاده میکنیم. تابع “lambda x: x[1]” مشخص میکند که میخواهیم بر اساس مقادیر (فرکانسها) در دیکشنری پایتون مرتب کرده و “reverse=True” نشان میدهد که میخواهیم به ترتیب نزولی مرتب کنیم.
- چاپ 10 کلمه پرتکرار: در نهایت، با استفاده از یک حلقه که در لیست مرتب شده کلمات و فرکانس آنها تکرار میشود، 10 کلمه پرتکرار و تکرار آنها را چاپ میکنیم. خروجی کلمات و تعداد آنها را به ترتیب نزولی نمایش میدهد و به ما امکان میدهد فرکانس یا تعداد کلمات را در سند متنی تجزیهوتحلیل کنیم.
این مثال تطبیقپذیری و قدرت متد count در پایتون برای تجزیهوتحلیل دادههای متنی و استخراج بینش معنیدار از اسناد بزرگ نشان میدهد. این نشان میدهد که چگونه count() میتواند در یک سناریوی واقعی برای پردازش و تجزیهوتحلیل دادههای متنی به طور مؤثر استفاده شود و آن را به ابزاری ارزشمند در تجزیهوتحلیل دادهها، زبان طبیعی تبدیل میکند.
پیشنهاد مطالعه: پایتون یا جاوا اسکریپت؟ کدام زبان بهتر است؟
سخن پایانی
متد count در پایتون یک ابزار قدرتمند برای شمارش وقوع عناصر در تکرارپذیرها مانند لیستها، رشتهها و موارد دیگر است. این متد مهم سادگی، تطبیقپذیری و کارایی را ارائه میدهد و آن را به ابزاری ارزشمند برای برنامهنویسی پایتون شما تبدیل میکند. در این مقاله، سینتکس، مزایا و مثالهای عملی count() را در پایتون پوشش دادیم و موارد استفاده مختلف آن را به نمایش گذاشتیم. با تسلط بر متد count در زبان پایتون میتوانید به طور موثری رخدادهای خاص را در برنامههای پایتون خود بشمارید و آنها را قوی تر و کارآمدتر کنید.
پیشنهاد مطالعه: آموزش دستورات شرطی در پایتون به زبان ساده
یادگیری پایتون
یادگیری اصولی و حرفهای پایتون مستلزم آموزش دیدن، تمرین کردن و اعتمادبهنفس است. در این میان آموزش اصولی از اهمیت ویژهای برخوردار است، چیزی که دورههای پایتون مکتب خونه تمام ویژگیهای لازم یک آموزش اصولی را دارند.
اگر به فکر یادگیری پایتون هستید، دورههای آموزش پایتون مکتب خونه در این مسیر میتواند کمک حال بسیار مناسبی برای شما باشد. دورههای آموزش پایتون مکتب خونه به وسیله افراد حرفهای پایتون در ایران تهیه و تدوین شدهاند و تمام استاندارهای لازم یک آموزش اصولی را دارند. هماکنون از طریق صفحه آموزش پایتون مکتب خونه میتوانید انواع دورههای آموزش پایتون را از مقدماتی تا پیشرفته برای حوزههای مختلف مشاهده کنید