可以说我有:
str = "Hello! My name is Barney!"
是否有一个或两行方法来检查这个字符串是否包含两个!
?
count
是的,您可以使用字符串的方法轻松地在一行中获得解决方案:
>>> # I named it 'mystr' because it is a bad practice to name a variable 'str'
>>> # Doing so overrides the built-in
>>> mystr = "Hello! My name is Barney!"
>>> mystr.count("!")
2
>>> if mystr.count("!") == 2:
... print True
...
True
>>>
>>> # Just to explain further
>>> help(str.count)
Help on method_descriptor:
count(...)
S.count(sub[, start[, end]]) -> int
Return the number of non-overlapping occurrences of substring sub in
string S[start:end]. Optional arguments start and end are
interpreted as in slice notation.
>>>
采用
str.count("!")
所以:
if str.count("!") == 2:
return True
有很多方法可以查找字符串中的字符数:
string = "Hello! My name is Barney!"
方法:
string.count('!') == 2 #best way
或者
len([x for x in string if x == '!']) == 2 #len of compresion with if
或者
len(string)-len(string.replace('!','')) == 2 #len of string - len of string w/o character
或者
string[string.find('!')+1:].find('!')>0 #find it, and find it again, at least twice
count
是最好的,但我喜欢考虑其他方式,因为我有时会以这种方式找到冗余代码/变量,这当然取决于你在做什么。假设您已经有了字符串的 len 和字符串的 len 并在变量中替换了字符,那么您可以简单地减去这些变量。可能不是这样,但需要考虑一些事情。