week02_python内蔵データ構造_bytes、bytearray


bytes、bytearray
Python 3は2つの新しいタイプを導入しました.
    bytes
バリアントバイトシーケンス
    bytearray
バイト配列
可変
文字列とbytes
文字列は文字からなる秩序あるシーケンスであり、文字は符号化を用いて理解することができる.
bytesはバイトからなる秩序化された可変シーケンスである.
bytearrayはバイトからなる秩序化された可変シーケンスである.
コーディングとデコード
文字列は異なる文字セット符号化encodeに従ってバイトシーケンスbytesを返す
        S.encode(encoding='utf-8', errors='strict') -> bytes
バイトシーケンスは、decodeが返す文字列を異なる文字セットで復号します.
        bytes.decode(encoding='utf-8', errors='strict') -> str
        bytearray.decode(encoding='utf-8', errors='strict') -> str
bytes定義:
bytes()     bytes
bytes(int)         bytes, 0  
bytes(iterable_of_ints) -> bytes    [0,255] int        
bytes(string,encoding[,errors]) -> bytes        string.encode()
bytes(bytes_or_buffer) -> immutable copy of bytes_or_buffer
         buffer           bytes  

  b    
         ASCII      b'abc9'
      16    b'\x41\x61'

bytesアクション:
 str    ,       ,         。   bytes  ,   bytes,   bytes
    In [1]: b'abcdef'.replace(b'f',b'k')
    Out[1]: b'abcdek'
    
    In [2]: b'abc'.find(b'b')
    Out[2]: 1
    
    
   bytes.fromhex(string):
    string   2    16     ,‘6162 6a 6b’,      
        In [3]: bytes.fromhex('6162 09 6a 6b00')
        Out[3]: b'ab\tjk\x00'
        
   
hex()
      16        
    In [4]: 'abc'.encode().hex()
    Out[4]: '616263'
    
  
    In [6]: b'abcdef'[2]
    Out[6]: 99
             ,int  

bytearray定義
bytearray()     bytearray
bytearray(int)         bytearray, 0  
bytearray(iterable_of_ints) -> bytearray    [0,255] int        
bytearray(string,encoding[,errors]) -->bytearray      string.encode(),        
bytearray(bytes_or_buffer)             buffer          bytearray  

   ,b        bytes  

bytearray操作
 bytes       
    In [1]: bytearray(b'abcdef').replace(b'f',b'k')
    Out[1]: bytearray(b'abcdek')
    
    In [2]: bytearray(b'abc').find(b'b')
    Out[2]: 1
    
   bytearray.fromhex(string)
    string   2    16     ,'6162 6a 6b',      
    In [3]: bytearray.fromhex('6162 09 6a 6b00')
    Out[3]: bytearray(b'ab\tjk\x00')
    
hex()
      16        
    In [5]: bytearray('abc'.encode()).hex()
    Out[5]: '616263'
    
  
    In [6]: bytearray(b'abcdef')[2]
    Out[6]: 99
             ,int  

操作:
append(int)        
insert(index,int)           
extend(iterable_of_ints)                bytearray
pop(index=-1)          ,       
remove(value)     value  ,    ValueError  

  ,         int  ,  [0,255]

clear()  bytearray
reverse()  bytearray,    

例:
In [1]: b = bytearray()

In [2]: b.append(97)

In [3]: b.append(99)

In [4]: b
Out[4]: bytearray(b'ac')

In [5]: b.insert(1,98)

In [6]: b
Out[6]: bytearray(b'abc')

In [7]: b.extend([65,66,67])

In [8]: b
Out[8]: bytearray(b'abcABC')

In [9]: b.remove(66)

In [10]: b
Out[10]: bytearray(b'abcAC')

In [11]: b.pop()
Out[11]: 67

In [12]: b.reverse()

In [13]: b
Out[13]: bytearray(b'Acba')

In [14]: b.clear()

In [15]: b
Out[15]: bytearray(b'')