7天刚学会Python 3,感觉对字节串的理解有点坑。在 Python 3 中,假设我有一个 byte string b'1234'
。它的迭代器返回整数:
Python 3.2.3 (default, May 26 2012, 18:49:27)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> for z in b'1234':
... print(type(z))
...
<class 'int'>
<class 'int'>
<class 'int'>
<class 'int'>
我可以在字节字符串中找到一个整数(的定义in
是它搜索相等):
>>> 0x32 in b'1234'
True
但是,我想在字节字符串中找到给定整数的索引。bytes.index
需要一个子字符串:
>>> b'1234'.index(b'2')
1
现在,如果我有一个我想找到的变量x
,这是我想出的最好的:
>>> x = 0x32
>>> b'1234'.index(bytes([x]))
1
我知道 Python 比这更优雅。我显然遗漏了一些明显的东西。除了创建单个整数的序列之外,还有什么更简单的方法来做到这一点?或者真的是这样吗?