Только что изучил Python 3 за 7 дней, и у меня такое чувство, что в моем понимании байтовых строк есть небольшая дыра. В Python 3 предположим, что у меня есть строка байтов 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'>
Я могу найти целое число в байтовой строке (определение в
состоит в том, что он ищет равенство):
>>> 0x32 in b'1234'
True
Однако я хотел бы найти индекс данное целое число в строке байтов. bytes.index
требует подстроки:
>>> b'1234'.index(b'2')
1
Теперь, если у меня есть переменная x
, которую я хочу найти, это лучшее, что я придумал:
>>> x = 0x32
>>> b'1234'.index(bytes([x]))
1
Я знаю, что Python более элегантен. Я явно упускаю что-то очевидное. Любые идеи относительно более простого способа сделать это, кроме создания последовательности одного целого числа? Или это действительно так?