본문 바로가기
파이썬

파이썬 Python 3에서 개별 바이트 반복

by º기록 2021. 1. 27.
반응형

Python 3에서 bytes 객체를 반복 할 때 개별 bytes ints 로 가져옵니다.

>>> [b for b in b'123']
[49, 50, 51]

대신 1 길이 바이트 개체를 얻는 방법은 무엇입니까?

다음은 가능하지만 독자에게는 명확하지 않으며 성능이 좋지 않을 가능성이 높습니다.

>>> [bytes([b]) for b in b'123']
[b'1', b'2', b'3']

 

해결 방법

 

이 코드의 성능에 대해 염려하고 int 가 귀하의 경우에 적합한 인터페이스가 아니므로 사용하는 데이터 구조를 다시 고려해야합니다. 예를 들어 str 을 사용합니다. 대신 개체.

bytes 객체를 슬라이스하여 길이가 1 인 bytes 객체를 얻을 수 있습니다.

L = [bytes_obj[i:i+1] for i in range(len(bytes_obj))]


>>> list(b'123'.iterbytes())
[b'1', b'2', b'3']

 

참조 페이지 https://stackoverflow.com/questions/14267452

 

 

반응형

댓글