-1

私はフォーマットの文字列を持っています

s = "a, b, [c, d, ....]"

どうすればそれを配列に分割できますか

[c, d,, ..] 

結果の配列の別の要素として a と b を 1 つの要素に変換します。使おうとしたら

s.split(',')

[c,d, ...] でさえ分割されます。

4

4 に答える 4

1

2.6以降を使用している場合ast.literal_evalは、次の方法があります...(リテラルがあると仮定します-そうでない場合はeval、注意して使用してください)-または、http:pyparsingに「安全な」評価例があるライブラリを見てください。 //pyparsing.wikispaces.com/Examples(parsePythonValue.pyを探してください)

literal_evalソリューション:

from ast import literal_eval

s = "'a', 'b', ['c', 'd', 'z']"
print literal_eval(s)
于 2012-09-10T09:13:03.073 に答える
0

2 つのシステム間でデータを交換するために必要な場合は、json を使用できます。

>>> import json
>>> s = '[1, 2, [3, 4]]'
>>> json.loads(s)
[1, 2, [3, 4]]

リテラルが必要な場合は、それらを引用する必要があります。

于 2012-09-10T09:15:28.643 に答える
0

eval()出来る。

>>> s = "'a', 'b', ['c', 'd', 'e', 'f']"
>>> a = eval(s)
>>> a
('a', 'b', ['c', 'd', 'e', 'f'])

または、文字列に一連の変更を加えることができます。

>>> s = "a, b, [c, d, e, f]"
>>> a = s.replace("[","").replace("]","").replace(" ","").split(",")
>>> a
['a', 'b', 'c', 'd', 'e', 'f']
于 2012-09-10T09:08:29.940 に答える
-1

文字列操作アプローチを採用する予定の場合:

http://docs.python.org/library/re.html

import re

text = "a, b, [c, d, ....]"
matches = re.split(r"\W+", text);
print matches

それ以外の場合は、評価方法を直接使用します。

于 2012-09-10T09:12:15.103 に答える