Python備忘録(随時更新); 変換 スライス
●変換
◆バイト列を整数に変換
bigはビッグ・エンディアン(最上位のバイトがバイト配列の最初にくる)。
>>> data=b'\xf0\x10'
>>> print(data)
b'\xf0\x10'
>>> print(int.from_bytes(data,'big'))
61456
>>> import struct
>>> data=b'\xf0\x10'
>>> print(struct.unpack('>H', data))
(61456,)
>>> print(struct.unpack('>H', data)[0])
61456
1バイトだけ整数に変換。
>>> data=b'\xf0\x10'
>>> data[0]
240
>>> data[1]
16
バイト列を文字列に変換。
>>> data=b'\xf0\x10'
>>> data.hex()
'f010'
>>> print(data.hex())
f010
◆整数をバイト列に変換
>はビッグ・エンディアン。Hはunsigned short。
>>> data=1234
>>> print(data.to_bytes(2, 'big'))
b'\x04\xd2'
1バイトのとき。
>>> print(bytes([1]))
b'\x01'
>>> print(bytes([8]))
b'\x08'
>>> print(bytes([255]))
b'\xff'
◆文字列をバイト列に変換
>>> bytes.fromhex('f010')
b'\xf0\x10'
>>> bytes.fromhex('f0 10')
b'\xf0\x10'
●スライス
文字列に対しての処理
>>>s = "12345"
>>>print(s[::-1])
54321
>>>print(s[0])
1
>>>print(s[-1])
5
>>>print(s[:3], s[3:])
123 45
>>>print(s[0:3], s[3:5])
123 45