1

文字列の長さと文字列の内容を含むバイト シーケンスを生成したいと考えています。
たとえば、'hello'取得したい文字列の場合、b'\x05hello'
いくつかのドキュメントを読んだ後、関数を作成しました。

def LenAndStrBytes(strdata):
  return bytearray([len(strdata)&0xFF])+strdata if strdata!=[] else 0

質問:
私は Python プログラミングの初心者で、さまざまな種類のデータintと反復可能なものを連結するためのベスト python プラクティスはbytearray
どれですか?関数を最適に記述しましたか?

4

2 に答える 2

2

まあ、ラースマンが指摘するだけで、それはあなたの使用法に依存します。明確なコードとコンテキスト制限を満たす結果を得ることができる場合は、適切な方法です。

、bytearrayチェックの必要はありません&0xFF。0から255までの値を確認します。

>>> strdata = 'hello'
>>> bytearray([len(strdata)]) + strdata if strdata else bytearray()
bytearray(b'\x05hello')

そして、あなたも

import struct
bytearray(struct.pack('B%ds' % len(strdata), len(strdata), strdata))
于 2012-04-27T13:28:17.797 に答える
0

バイナリ データをファイルに書き込む (またはネットワーク経由で送信する) 前にシリアル化しようとしていますか?

代わりに、データのシリアル化にpickleモジュールを使用するつもりだったのでしょうか?

于 2012-04-27T14:34:49.380 に答える