Python字符串末尾有特殊字符吗?就像 C 或 C++ 中的\0 一样。
我想在不使用内置 len
函数的情况下计算 python 中字符串的长度。
最佳答案
Python 中没有字符串结束字符,至少没有公开的字符,并且它依赖于实现。 String 对象保持它们自己的长度,这不是你需要关心的事情。有几种方法可以在不使用 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
我怀疑这只是冰山一角。
关于python - Python 字符串是否以终止 NULL 结尾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24409581/