반응형
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
반응형
'파이썬' 카테고리의 다른 글
파이썬 Numpy : 2D 배열에서 임의의 행 집합 가져 오기 (0) | 2021.01.28 |
---|---|
파이썬 조건이 충족되는 경우에만 dict에 추가 (0) | 2021.01.27 |
파이썬 Python matplotlib 다중 막대 (0) | 2021.01.27 |
파이썬 python-requests를 사용하여 파일 크기를 가져 오면서 헤더 만 가져옵니다. (0) | 2021.01.27 |
파이썬 Python 캐싱 라이브러리가 있습니까? (0) | 2021.01.27 |
댓글