본문 바로가기
IT/파이썬

파이썬 bytearray 배열 reset 하기

마이크로파이썬 micropython 의 세계로 들어가고 있다. 점점..하다보니

 

bytearray를 새로 만드는 것은 정말 자료도 많이 있는데, 이미 만들어진 bytearray를 다시 리셋 시켜주는 코드를 찾기가 쉽지 않네.

 

물론 가장 쉽게 할 수 있는 방법은 

for i in range(len(your_array)):
    your_array[i] = 0

 

요거 더 잘하는 방법이 있을 것 같아서 찾아본 결과.

$ ./upython 
MicroPython v1.8.1-39-gdb4addd on 2016-07-01; linux version
Use Ctrl-D to exit, Ctrl-E for paste mode
>>> a = bytearray(10)
>>> id(a)
139728051341376
>>> a[:] = b'\1' * len(a)
>>> id(a)
139728051341376
>>> a
bytearray(b'\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01')
>>> a[:] = b'\0' * len(a)
>>> a
bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
>>> id(a)
139728051341376
>>> 

결국 0x00으로 리셋하고 싶다면 

 

>> bytearray변수[:] = b'\x00' * len(bytearray변수)

 

이렇게 하라는 말씀

 

내부적으로 id 값을 찍어보면 주소 값이 안바뀌는 것으로 봐서 메모리 낭비는 없는 것 같다.

 

원본 글 위치는 여기

forum.micropython.org/viewtopic.php?t=2480

 

Resetting bytearray - MicroPython Forum

Post by pythoncoder » Fri Oct 07, 2016 9:57 am Code: Select all $ ./upython MicroPython v1.8.1-39-gdb4addd on 2016-07-01; linux version Use Ctrl-D to exit, Ctrl-E for paste mode >>> a = bytearray(10) >>> id(a) 139728051341376 >>> a[:] = b'\1' * len(a) >>>

forum.micropython.org

깨끗하게 정렬된 빵

Jamin Djuang 님의 사진, 출처: Pexels