Python字符串的末尾是否有特殊字符?就像它在C或C++中是\ 0.我想在不使用内置len函数的情况下计算python中字符串的长度.
mha*_*wke 17
Python中没有字符串结尾字符,至少没有公开的字符,它将依赖于实现.字符串对象保持自己的长度,而不是你需要关注的东西.有几种方法可以在不使用的情况下获取字符串的长度len().
str = 'man bites dog'
unistr = u'abcd\u3030\u3333'
# count characters in a loop
count = 0
for character in str:
count += 1
>>> count
13
# works for unicode strings too
count = 0
for character in unistr:
count += 1
>>> count
6
# use `string.count()`
>>> str.count('') - 1
13
>>> unistr.count(u'') - 1
6
# weird ways work too
>>> max(enumerate(str, 1))[0]
13
>>> max(enumerate(unistr, 1))[0]
6
>>> str.rindex(str[-1]) + 1
13
>>> unistr.rindex(unistr[-1]) + 1
6
# even weirder ways to do it
import re
pattern = re.compile(r'$')
match = pattern.search(str)
>>> match.endpos
13
match = pattern.search(unistr)
>>> match.endpos
6
Run Code Online (Sandbox Code Playgroud)
我怀疑这只是冰山一角.
| 归档时间: |
|
| 查看次数: |
16743 次 |
| 最近记录: |