我试图找到字母' b'和' B'。我写的代码完美无缺。有没有更好的方法可以做到这一点 我的代码:
def count_letter_b(string):
#TODO: Your code goes here
a = int(string.count('B'))
b = int(string.count('b'))
return a + b
print count_letter_b("Bubble Bungle")
答案 0 :(得分:2)
您可以将字符串转换为大写(或小写),然后计算出现次数:
string.upper().count('B')
总的来说,您的代码将如下所示:
def count_letter_b(string):
return string.upper().count('B')
注意:由于int(..)
的结果已经是str.count
int
答案 1 :(得分:0)
如果您只想将相同的计算应用于不同数量的字母,您可能希望它们成为参数(count_letter(s, letters)
),但无论如何,这是一个更实用的示例:
def count_letter_b(string):
return sum(map(string.count, 'Bb'))
这使用绑定到输入字符串实例的str.count
版本。
请注意,如果您将名称string
用作参数名称,则会将其隐藏。
答案 2 :(得分:0)
你可以做到
# count in upper string, upper character
def countInvariantChars(c,s):
return s.upper().count(c.upper())
# list comprehensions + length
def countInvariantChars2(c,s):
return len([x for x in s if c.upper() == x.upper()])
# sum ones of list comprehension
def countInvariantChars3(c,s):
return sum([1 for x in s if c.upper() == x.upper()])
print(countInvariantChars("b","Bubble Bungle"))
print(countInvariantChars2("b","Bubble Bungle"))
print(countInvariantChars3("b","Bubble Bungle"))
输出(pyfiddle.io):
read-only@bash: 4
4
4
答案 3 :(得分:-1)
使用此:
def count_letter_b(string):
return string.lower().count('b')
print(count_letter_b(string))