2010-11-18 16 views
2

私は個々の文字のリストに分割したい長い文字列を持っています。私はリストのメンバーとしても空白を含めたい。これはどうすればいいですか?文字列をPythonのリストに分割する

あなたが行うことができます
+3

文字列はすでに文字列であるため、これを行う必要はありません。あなたが何をやっていると思うかの例を挙げてください。 –

+3

文字列と文字のリストの違いの1つは、リストが変更可能であることです。それで、その形式に変換された文字のシーケンスが必要なのですか?多くの場合、他のほとんどの点ではそうではありませんが、それらは非常によく似ており、同じ操作をどちらでも実行できます(したがって、それらをそのままにしておくことが理にかなっています)。 – martineau

+0

@martineau:しかし、 "文字列をリストとして"変更することは、新しい文字列を作成するのが一般的に効率的であるため、あまり効果的ではありません。推測よりもむしろこの質問の周りのいくつかの実際の文脈を見ることは役に立ちます。私はそれが設計問題を示していると思うが、事実がなければ、その目的が何であるかを知ることは難しい。 –

答えて

11

:(一緒にグループ化されていないが、しかし、あなたは、あなたがいることを必要と指定されていませんでした)

list('foo') 

スペースがリストメンバーとして扱われます。ここ

>>> list('foo') 
['f', 'o', 'o'] 
>>> list('f oo') 
['f', ' ', 'o', 'o'] 
+0

あなたの時間とあなたの答えに感謝します。私は上記の答えが私を助けるかもしれないと思う。 – Rameses

+0

私がしようとしているのは、別の.txtファイルから空白を含む文字列を読み込むことです。このファイルには "X"または ""(スペース)だけが含まれます。 – Rameses

+0

これを使用して2次元マップを作成します。 2次元配列は明らかにPythonではサポートされていないので、入れ子リストを使用する必要があります。 – Rameses

0

文字列にいくつかの比較です。文字列のリストと、実生活使用リスト(文字列)のリストを楽しいために明示的にリストするもう1つの方法:

0
WIDTH = 5 
HEIGHT = 5 

# a dict to be used as a 2D array: 
grid = {} 

# initialize the grid to spaces 
for x in range(WIDTH): 
    for y in range(HEIGHT): 
     grid[ (x,y) ] = ' ' 

# drop a few Xs 
grid[ (1,1) ] = 'X' 
grid[ (3,2) ] = 'X' 
grid[ (0,4) ] = 'X' 

# iterate over the grid in raster order 
for x in range(WIDTH): 
    for y in range(HEIGHT): 
     if grid[ (x,y) ] == 'X': 
      print "X found at %d,%d"%(x,y) 

# iterate over the grid in arbitrary order, but once per cell 
count = 0 
for coord,contents in grid.iteritems(): 
    if contents == 'X': 
     count += 1 

print "found %d Xs"%(count) 

タプル、不変であること、完璧な辞書を作る:これは、上記のコメントでは、元の質問にしかし、あなたの「私はdictのオプションを使用しない方法」(シミュレートする2次元配列)への答えではありませんキー。グリッド内のセルは、それらを割り当てるまで存在しないので、それがあなたのものならば、疎配列の場合は非常に効率的です。

関連する問題