Python 3 bytes.index: лучший способ?

Только что изучил 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 более элегантен. Я явно упускаю что-то очевидное. Любые идеи относительно более простого способа сделать это, кроме создания последовательности одного целого числа? Или это действительно так?

7
задан ThiefMaster 6 June 2012 в 23:15
поделиться