回答:
このような:
>>> text = 'a,b,c'
>>> text = text.split(',')
>>> text
[ 'a', 'b', 'c' ]
または、eval()
文字列が安全であると信頼できる場合に使用できます。
>>> text = 'a,b,c'
>>> text = eval('[' + text + ']')
既存の答えに追加するだけです:うまくいけば、将来このような何かに遭遇するでしょう:
>>> word = 'abc'
>>> L = list(word)
>>> L
['a', 'b', 'c']
>>> ''.join(L)
'abc'
しかし、あなたが今扱っているのは、@ Cameronの答えです。
>>> word = 'a,b,c'
>>> L = word.split(',')
>>> L
['a', 'b', 'c']
>>> ','.join(L)
'a,b,c'
Pythonでは、文字列とリストは非常によく似ているため、文字列をリストに変換する必要はほとんどありません。
文字配列であるはずの文字列が本当にある場合は、次のようにします。
In [1]: x = "foobar"
In [2]: list(x)
Out[2]: ['f', 'o', 'o', 'b', 'a', 'r']
文字列はPythonのリストに非常に似ていることに注意してください
In [3]: x[0]
Out[3]: 'f'
In [4]: for i in range(len(x)):
...: print x[i]
...:
f
o
o
b
a
r
文字列はリストです。ほとんど。
スペースで分割したい場合は、次のように使用できます.split()
:
a = 'mary had a little lamb'
z = a.split()
print z
出力:
['mary', 'had', 'a', 'little', 'lamb']
()
、つまり何も出力しません。
実際に配列が必要な場合:
>>> from array import array
>>> text = "a,b,c"
>>> text = text.replace(',', '')
>>> myarray = array('c', text)
>>> myarray
array('c', 'abc')
>>> myarray[0]
'a'
>>> myarray[1]
'b'
配列が不要で、文字のインデックスのみを調べたい場合は、文字列が反復可能であることを思い出してください。文字列は不変であるという事実を除いて、リストと同じです。
>>> text = "a,b,c"
>>> text = text.replace(',', '')
>>> text[0]
'a'
すべての回答は適切です。別の方法があります。それはリストの理解です。以下の解決策を参照してください。
u = "UUUDDD"
lst = [x for x in u]
コンマ区切りリストの場合は、次のようにします
u = "U,U,U,D,D,D"
lst = [x for x in u.split(',')]
私が書いstring
たフォームa="[[1, 3], [2, -6]]"
をまだ最適化されていないコードに変換するには:
matrixAr = []
mystring = "[[1, 3], [2, -4], [19, -15]]"
b=mystring.replace("[[","").replace("]]","") # to remove head [[ and tail ]]
for line in b.split('], ['):
row =list(map(int,line.split(','))) #map = to convert the number from string (some has also space ) to integer
matrixAr.append(row)
print matrixAr