Answers:
str.count (උප [, ආරම්භය [, අවසානය]])
sub
පරාසය තුළ උපස්ථරයේ අතිච්ඡාදනය නොවන සිදුවීම් ගණන ආපසු එවන්න[start, end]
. විකල්ප තර්කstart
සහend
පෙති අංකනයෙහි මෙන් අර්ථ නිරූපණය කෙරේ.
>>> sentence = 'Mary had a little lamb'
>>> sentence.count('a')
4
වෙනත් පිළිතුරු පැවසූ පරිදි, නූල් ක්රම ගණනය () භාවිතා කිරීම බොහෝ විට සරලම ය, නමුත් ඔබ මෙය නිතර කරන්නේ නම්, එකතු කිරීම් බලන්න. ගණන් කරන්න :
from collections import Counter
my_str = "Mary had a little lamb"
counter = Counter(my_str)
print counter['a']
නිත්ය ප්රකාශන සමහර විට?
import re
my_string = "Mary had a little lamb"
len(re.findall("a", my_string))
len(re.findall('1',bin(10)))
myString.count('a');
වැඩි විස්තර මෙහි
පයිතන් -3.x:
"aabc".count("a")
str.count (උප [, ආරම්භය [, අවසානය]])
පරාසය තුළ උපස්ථරයේ උප අතිච්ඡාදනය නොවන සිදුවීම් ගණන නැවත ලබා දෙන්න [ආරම්භය, අවසානය]. පෙති අංකනයෙහි මෙන් විකල්ප තර්ක ආරම්භය සහ අවසානය අර්ථ නිරූපණය කෙරේ.
str.count(a)
නූලක තනි අක්ෂරයක් ගණනය කිරීමට හොඳම විසඳුම වේ. නමුත් ඔබට තවත් අක්ෂර ගණන් කිරීමට අවශ්ය නම්, ඔබට ගණන් කිරීමට අවශ්ය අක්ෂර මෙන් මුළු නූලම කියවිය යුතුය.
මෙම කාර්යය සඳහා වඩා හොඳ ප්රවේශයක් වනුයේ:
from collections import defaultdict
text = 'Mary had a little lamb'
chars = defaultdict(int)
for char in text:
chars[char] += 1
එබැවින් ඔබට සෑම අකුරකම සිදුවීම් ගණන නැවත ලබා දෙන නියෝගයක් 0
ඇත.
>>>chars['a']
4
>>>chars['x']
0
අන්තරාදායක කවුන්ටරයක් සඳහා ඔබට උප defaultdict
පංතියෙන් විකෘති සහ ප්රවේශ ක්රම ඉක්මවා යා හැකිය (මූලික පන්තියේ ඒවා කියවීමට පමණි):
class CICounter(defaultdict):
def __getitem__(self, k):
return super().__getitem__(k.lower())
def __setitem__(self, k, v):
super().__setitem__(k.lower(), v)
chars = CICounter(int)
for char in text:
chars[char] += 1
>>>chars['a']
4
>>>chars['M']
2
>>>chars['x']
0
Counter
කරමින් සිටින අතර එය දැනටමත් පන්තියකි collections
.
Counter
වඩාත් වඩා පුම්බා පිරිසිදු Python පන්තියේ හා defaultdict
ගේ __missing__
වේ සී ලියා . මේ වගේ සරල කාර්යයක් සඳහා ( int
සී හි ද ක්රියාත්මක වේ) මෙම ප්රවේශය ඉතා වේගවත් ය.
මෙම පහසු සහ forward ජු ඉදිරි කාර්යය උපකාරී වනු ඇත:
def check_freq(x):
freq = {}
for c in x:
freq[c] = str.count(c)
return freq
check_freq("abbabcbdbabdbdbabababcbcbab")
{'a': 7, 'b': 14, 'c': 3, 'd': 3}
str
. ඔබ එහි නම විචල්යයට ලබා දෙන්නේ නම්, str
එය තවදුරටත් ගොඩනංවන ලද වර්ගයක් නොවේ. එසේම ඔබ b හි දහහතර වතාවක් ගණන් කරයි. ඔබ හුදෙක් වෙනස් කිරීම මගින් ගත කරේ for c in text
සමග for c in set(text)
.
ඔබට සිද්ධි-සංවේදීතාව අවශ්ය නම් නිත්ය ප්රකාශන ඉතා ප්රයෝජනවත් වේ (ඇත්ත වශයෙන්ම රීජෙක්ස්හි සියලු බලය).
my_string = "Mary had a little lamb"
# simplest solution, using count, is case-sensitive
my_string.count("m") # yields 1
import re
# case-sensitive with regex
len(re.findall("m", my_string))
# three ways to get case insensitivity - all yield 2
len(re.findall("(?i)m", my_string))
len(re.findall("m|M", my_string))
len(re.findall(re.compile("m",re.IGNORECASE), my_string))
රීජෙක්ස් අනුවාදය ක්රියාත්මක වීමට දස ගුණයක අනුපිළිවෙලක් ගන්නා බව මතක තබා ගන්න, එය ගැටළුවක් වනු ඇත්තේ my_string විශාල ලෙස දිගු වුවහොත් හෝ කේතය ගැඹුරු පුඩුවක් තුළ තිබේ නම් පමණි.
භාවිතයෙන් තොරව සියළුම අක්ෂර ගණනය කිරීම් ලබා ගැනීමට විකල්ප ක්රමයක් Counter()
වන count
අතර රීජෙක්ස්
counts_dict = {}
for c in list(sentence):
if c not in counts_dict:
counts_dict[c] = 0
counts_dict[c] += 1
for key, value in counts_dict.items():
print(key, value)
count
නූලක චරිතයක් සිදුවීම ගණනය කිරීමේ නියත වශයෙන්ම වඩාත්ම සංක්ෂිප්ත හා කාර්යක්ෂම ක්රමය වන නමුත් මම lambda
මෙවැනි දෙයක් භාවිතා කරමින් විසඳුමක් ඉදිරිපත් කිරීමට උත්සාහ කළෙමි :
sentence = 'Mary had a little lamb'
sum(map(lambda x : 1 if 'a' in x else 0, sentence))
මෙහි ප්රති result ලය වනු ඇත්තේ:
4
එසේම, මෙහි තවත් එක් වාසියක් වන්නේ වාක්යය ඉහත අකුරු අඩංගු උප-නූල් ලැයිස්තුවක් නම්, එසේම මෙය භාවිතා කිරීම නිසා නිවැරදි ප්රති result ලය ලබා දෙයි in
. බලන්න :
sentence = ['M', 'ar', 'y', 'had', 'a', 'little', 'l', 'am', 'b']
sum(map(lambda x : 1 if 'a' in x else 0, sentence))
මෙහි ප්රති results ලය ද වේ:
4
නමුත් ඇත්ත වශයෙන්ම මෙය ක්රියාත්මක වන්නේ 'a'
මෙම විශේෂිත අවස්ථාව වැනි තනි අක්ෂර ඇතිවීම පරීක්ෂා කිරීමේදී පමණි .
"ඔබට අක්ෂර වින්යාසය අවශ්ය බව සොයා ගැනීමට ගණන් භාවිතා නොකර" ක්රමය.
import re
def count(s, ch):
pass
def main():
s = raw_input ("Enter strings what you like, for example, 'welcome': ")
ch = raw_input ("Enter you want count characters, but best result to find one character: " )
print ( len (re.findall ( ch, s ) ) )
main()
මම පැන්ඩා පුස්තකාලයේ රසිකයෙක්, විශේෂයෙන් value_counts()
ක්රමවේදය. ඔබේ නූලෙහි එක් එක් අක්ෂර සිදුවීම ගණනය කිරීමට ඔබට එය භාවිතා කළ හැකිය:
>>> import pandas as pd
>>> phrase = "I love the pandas library and its `value_counts()` method"
>>> pd.Series(list(phrase)).value_counts()
8
a 5
e 4
t 4
o 3
n 3
s 3
d 3
l 3
u 2
i 2
r 2
v 2
` 2
h 2
p 1
b 1
I 1
m 1
( 1
y 1
_ 1
) 1
c 1
dtype: int64
පයිතන් 3
මෙය සාක්ෂාත් කර ගැනීමට ක්රම දෙකක් වේ:
1) සාදන ලද ශ්රිත ගණන සමඟ ()
sentence = 'Mary had a little lamb'
print(sentence.count('a'))`
2) ශ්රිතයක් භාවිතා නොකර
sentence = 'Mary had a little lamb'
count = 0
for i in sentence:
if i == "a":
count = count + 1
print(count)