在python3字节对象

时间:2018-05-04 16:46:13

标签: python string python-3.x

我有一个字节对象,想要测试特定的ASCII字符是否在特定位置。

我简单地写了像

这样的代码
if b[i] == b"\n":

问题是这不起作用,经过对repr的一些实验后发现,索引字符串时产生一个字符串索引一个字节产生一个数字,比较一个数字和一个字节总是返回false。

我通过

修复了这个问题
if b[i] == b"\n"[0]:

我意识到我也可以做到

if b[i:i+1] == b"\n":

是否有理由偏好另一种方法?

是否有更整洁的解决方案?

1 个答案:

答案 0 :(得分:2)

一个更简洁的解决方案可能是使用ord,它返回一个代码点(整数):

>>> ord(b'\n')
10

话虽这么说,使用切片的方法也很好。只是要小心,切出边界会返回一个空字符串,而不是触发IndexError