python - Python 字符串是否以终止 NULL 结尾?

标签 python

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/

相关文章:

Python Jinja2 宏空白问题

python - 返回生成器而不是二维数组中的位置列表

python - 单击时如何获取按钮ID?

python - 从图像中删除所有空白区域

Python:如果默认值设置为抛出异常的函数,Dict get 方法总是抛出异常

python - 为什么 `def f(_,): pass` 是一个有效的 Python 函数定义?

python - 更改表单集中表单的显示顺序

python - 如何使用 Python 在 Raspberry Pi 3 上使用 GPIO 控制风扇?

Python 缓冲区复制速度 - 为什么数组比字符串慢?

python - 如何使用 numpy/pandas 计算 "submatrix"条目的总和?