2012-03-31 5 views
1

array.arrayのように動作し、データ型として文字列(または文字配列)を処理できるオブジェクトはありますか?python array.array(データ型が文字列の場合)

文字列配列をバイナリに変換して戻すことができます。好ましくはヌル終了文字列を使用しますが、固定長文字列も使用できます。

>>> my_array = stringarray(['foo', 'bar']) 
>>> my_array.tostring() 
'foo\0bar\0' 
>>> re_read = stringarray('foo\0bar\0') 
>>> re_read[:] 
['foo', 'bar'] 

私は数百万の文字列を含む配列で使用します。

+1

だからあなたの文字列は ' '\ 0''が含まれることはありませんか?結合された文字列チャンクで何をするつもりですか? –

答えて

4

単に標準のPythonリストを使用します。

def list_to_string(lst): 
    return "\0".join(l) + "\0" 

def string_to_list(s): 
    return s.split("\0")[:-1] 
+0

空の文字列を指定するには、\ 0を保持する必要があります。 s.split( '\ 0')[: - 1]? – Gladius

+0

ええ、それは私がそれを修正する方法です。 –

+0

@Gladius:あなたの提案を使用する答えを編集しました。 's'が' \ 0'で終わっていなくても、最後の要素を削除するので、私はすぐにこれを使いませんでした。 –

関連する問題