如何计算字符串开头的字符数?

cai*_*ing 4 python string count python-3.x

如何计算Python中字符串开头/结尾的字符数?

例如,如果字符串是

'ffffhuffh'
Run Code Online (Sandbox Code Playgroud)

我如何计算字符串开头fs 数?上面的字符串应该输出4.f

str.count 对我来说没有用,因为角色可能在字符串的中间.

abc*_*ccd 11

一种简短的方法是使用该str.lstrip方法,并计算长度的差异.

s = 'ffffhuffh'
print(len(s)-len(s.lstrip('f')))
# output: 4
Run Code Online (Sandbox Code Playgroud)

str.lstrip([chars]):

返回删除了前导字符的字符串副本.chars参数是一个字符串,指定要删除的字符集.


Ósc*_*pez 5

试试这个,使用itertools.takewhile():

import itertools as it

s = 'ffffhuffh'
sum(1 for _ in it.takewhile(lambda c: c == 'f', s))
=> 4
Run Code Online (Sandbox Code Playgroud)

同样,为了计算结尾处的字符:

s = 'huffhffff'
sum(1 for _ in it.takewhile(lambda c: c == 'f', reversed(s)))
=> 4
Run Code Online (Sandbox Code Playgroud)

  • `sum(1 for _ in takewhile(lambda c: c == 'f', 'ffffhuffh'))` 避免构建列表。 (2认同)