Python 字母的出现区分大小写
我试图找出字母“b”和“b”的出现。我写的代码工作得非常好。有没有更好的方法可以做到这一点。Python 字母的出现区分大小写,python,Python,我试图找出字母“b”和“b”的出现。我写的代码工作得非常好。有没有更好的方法可以做到这一点。 我的代码: 如果您只想对不同数量的字母应用相同的计算,您可能希望它们成为参数(count\u letter,letters)),但无论如何,这里有一个更实用的示例: def count_letter_b(string): return sum(map(string.count, 'Bb')) 这将使用绑定到输入字符串实例的str.count版本 请注意,如果将名称字符串用作参数名称,则会对其进
我的代码:
如果您只想对不同数量的字母应用相同的计算,您可能希望它们成为参数(
count\u letter,letters)
),但无论如何,这里有一个更实用的示例:
def count_letter_b(string):
return sum(map(string.count, 'Bb'))
这将使用绑定到输入字符串实例的str.count
版本
请注意,如果将名称
字符串用作参数名称,则会对其进行阴影处理。您可以将字符串转换为大写(或小写),然后计算出现次数:
string.upper().count('B')
因此,总体而言,您的代码如下所示:
def count_letter_b(string):
return string.upper().count('B')
注意:无需强制转换为int(..)
,因为str的结果。count
已经是int使用以下方法:
def count_letter_b(字符串):
返回字符串.lower().count('b')
打印(计数字母(字符串))
你可以这样做
# 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):
这个代码不起作用。修复标识:)如果修复缩进,只需对输入调用.lower()
,然后计算它。str.count
已经返回一个int。int(str.count(…)
是冗余的谢谢大家,所有这些都是有用的提示@PatrickArtner@roganjosh,thanksnice解决方案:)特定though@ReutSharabani是的。我正试图建立在OP所要求的基础上。
# 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"))
read-only@bash: 4
4
4