s = "[[A, B],[E,R], [E,G]]"
是否有内置方法将此字符串转换为数组? (S [] [])
答案 0 :(得分:1)
有,但在你的情况下,它会假设A B E R G
是变量,是这种情况吗?
如果不是这种情况,您需要使用字符串进行一些额外的格式化。
如果设置了变量A B E R G
,这将有效:
s = eval(s)
如果字母必须是字符串,则必须使用某种正则表达式来替换所有出现的字符和引用的字符。
答案 1 :(得分:1)
如果A B E R G不是变量而只是一个字符串,那么您可以使用以下代码:
tmp = ''
for c in s:
if c.isalpha():
t+="'%s'"%c
else:
t+=c
eval(t) # will give you [['A', 'B'], ['E', 'R'], ['E', 'G']]
或者:(非常难看我知道,但不要打扰我太多 - 只是进行实践)
evel(''.join(map(lambda x: s[x[0]] if not s[x[0]].isalpha() else "'%s'" % s[x[0]], enumerate(map(lambda c: c.isalpha(), s)))))
答案 2 :(得分:0)
如果您可以稍微修改字符串,可以使用JSON模块将字符串转换为列表。
>>> import json
>>> s = '[["A", "B"], ["E", "R"], ["E", "G"]]'
>>> array = json.loads(s)
>>> array
[[u'A', u'B'], [u'E', u'R'], [u'E', u'G']]