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