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'> 

Я могу найти целое число в байтовой строке (определение in состоит in том, что оно ищет равенство):

 >>> 0x32 in b'1234' True 

Однако я хотел бы найти индекс заданного целого числа в байтовой строке. bytes.index требует подстроку:

 >>> b'1234'.index(b'2') 1 

Теперь, если у меня есть переменная x которую я хочу найти, это лучшее, что я придумал:

 >>> x = 0x32 >>> b'1234'.index(bytes([x])) 1 

Я знаю, что Python более элегантен. Мне явно не хватает чего-то очевидного. Любые идеи относительно более простого способа сделать это, кроме создания последовательности одного целого? Или это действительно так?

2 Solutions collect form web for “Python 3 bytes.index: лучший способ?”

Да, это способ сделать это.

Это не сильно отличается от поиска символа в строке на основе его кодовой точки:

 x = 0x32 i ='1234'.index(chr(x)) 

Кроме того, взгляните на « Погружение в пик» Марка Пилгрима 3 , глава 4. Строки , раздел 4.6. Строки против байтов . Это прекрасно объясняет проблемы с более старыми строками Python 2.x (которые стали типом байтов в Python 3) и как принципиально отличается новая строка Python 3.

  • Multiplex on queue.Queue?
  • Почему классы заказываются таким образом в MRO?
  • Python 3: Как объект может быть экземпляром типа?
  • Неподдерживаемая операция: не записываемый питон
  • Как сделать мигающее текстовое поле в tkinter?
  • Как написать список в файл с символами новой строки в Python3
  • Напишите генератор или верните генератор?
  • Несколько циклов с асинхронным
  • Регулярное выражение синтаксического анализа двоичного файла?
  • Сон не работает на pyqt4
  • как загрузить парсер страницы?
  • Python - лучший язык программирования в мире.