bytearray
는 서열 형이며, 슬라이스 기반 동작을 지원한다. "i
위치에 삽입"관용구가있는 조각은이 x[i:i] = <a compatible sequence>
과 같습니다. 그래서, 주먹 위치를 :
>>> a
bytearray(b'\x00\x00\x00\x01')
>>> b
bytearray(b'\x00\x00\x00\x02')
>>> a[0:0] = b
>>> a
bytearray(b'\x00\x00\x00\x02\x00\x00\x00\x01')
세 번째 위치를 들면 :
>>> a
bytearray(b'\x00\x00\x00\x01')
>>> b
bytearray(b'\x00\x00\x00\x02')
>>> a[2:2] = b
>>> a
bytearray(b'\x00\x00\x00\x00\x00\x02\x00\x01')
주,이, .insert
일치하지 않는 시퀀스, .insert
삽입 전체 개체 때문에 i 번째 요소로는입니다. 그래서, 목록과 다음의 간단한 예를 고려해 : 당신이 정말로 원하는 무엇
>>> y = ['a','b']
>>> x.insert(0, y)
>>>
>>> x
[['a', 'b'], 1, 2, 3]
을했다 : 만 충족 정수를 허용 된 ByteArray 있도록
>>> x
[1, 2, 3]
>>> y
['a', 'b']
>>> x[0:0] = y
>>> x
['a', 'b', 1, 2, 3]
이 방법이 효과적이지만 삽입이 실패한 이유를 알고 있습니까? – Russell
@Russell 왜냐하면'.insert'는 객체, 즉 전체 bytearray *를 i 번째 요소로 삽입하려하기 때문입니다. 하지만 그건 당신이 원하는 것이 아니며 bytearrays는 바이트 단위의 객체가 아닌 * 바이트 만 포함 할 수 있습니다. 이것을 생각 해보자.'x = [1,2,3]; y = [ 'a', 'b']; x.insert (0, y)'는 x == [[ 'a', 'b'], 1, 2, 3]' –