رشته ای داریم که می خواهیم تعداد تکرار یک کاراکتر در آن رشته را شمارش کنیم. این عملیات خاص روی رشته در بسیاری از برنامه ها مانند حذف موارد تکراری یا شناسایی کاراکترهای ناخواسته کاملاً مفید است.
روش شماره 1: روش ابتدایی
در کل رشته برای آن کاراکتر خاص بچرخید و سپس وقتی با آن کاراکتر خاص مواجه شدید، شمارنده را افزایش دهید.
# Python3 code to demonstrate
# occurrence frequency using
# naive method
# initializing string
test_str = "backendbaz"
# using naive method to get count
# counting a
count = 0
for i in test_str:
if i == 'a':
count = count + 1
# printing result
print ("Count of a in backendbaz is : "
+ str(count))
خروجی:
Count of a in backendbaz is : 2
روش شماره 2: استفاده از متد count()
استفاده از متد count()
متداول ترین روش در پایتون برای به دست آوردن تعداد تکرار هر عنصر در هر مجموعه ای است. کدنویسی و به خاطر سپردن آن آسان است و از این رو بسیار محبوب است.
# Python3 code to demonstrate
# occurrence frequency using
# count()
# initializing string
test_str = "backendbaz"
# using count() to get count
# counting a
counter = test_str.count('a')
# printing result
print ("Count of a in backendbaz is : "
+ str(counter))
خروجی:
Count of a in backendbaz is : 2
روش شماره 3: استفاده از collections.Counter()
این روش کمتر شناخته شده برای دریافت تعداد تکرار عنصر در هر مجموعه در پایتون است. این نیز کاری مشابه دو روش بالا را انجام می دهد، فقط تابعی از یک کتابخانه متفاوت یعنی collections است.
# Python3 code to demonstrate
# occurrence frequency using
# collections.Counter()
from collections import Counter
# initializing string
test_str = "backendbaz"
# using collections.Counter() to get count
# counting a
count = Counter(test_str)
# printing result
print ("Count of a in backendbaz is : "
+ str(count['a']))
خروجی:
Count of a in backendbaz is : 2
روش شماره 4: استفاده از لامبدا + sum()
+map()
تابع لامبدا، همراه با تابع sum()
و تابع map()
می توانند این وظیفه خاص یعنی شمارش کل رخدادهای یک عنصر خاص در یک رشته را انجام دهند. از تابع sum()
برای جمع زدن تمام پیدایش های به دست آمده با استفاده از map()
انجام می شود.
# Python3 code to demonstrate
# occurrence frequency using
# lambda + sum() + map()
# initializing string
test_str = "backendbaz"
# using lambda + sum() + map() to get count
# counting a
count = sum(map(lambda x : 1 if 'e' in x else 0, test_str))
# printing result
print ("Count of a in backendbaz is : "
+ str(count))
خروجی:
Count of a in backendbaz is : 2
روش شماره 5: استفاده از re + findall()
عبارات منظم می توانند به ما در دستیابی به بسیاری از وظایف کدگذاری مربوط به رشته ها کمک کنند. آنها همچنین می توانند ما را در دستیابی به وظیفه یافتن وقوع کاراکتر در رشته تسهیل کنند.
# Python3 code to demonstrate
# occurrence frequency using
# re + findall()
import re
# initializing string
test_str = "backendbaz"
# using re + findall() to get count
# counting a
count = len(re.findall("e", test_str))
# printing result
print ("Count of a in backendbaz is : "
+ str(count))
خروجی:
Count of a in backendbaz is : 2
خیلی عالی بود ممنون.