如何解析给定类型的字符串列表?

时间:2015-08-04 10:40:12

标签: python-2.7 parsing

用户输入字符串遵循以下模式:
{ 1, 2, 4, 6, 3 }
{ 2, 5, 8, 0, 3, 45, 5 }

如何将任何一个给定的用户输入转换为整数列表。

也许分裂可以像A.split(', ')一样使用,但我们得到,
A = ['{ 1', '2', '4', '6', '3 }']
但答案,我们想要的应该是,
A = [1, 2, 4, 6, 3]

3 个答案:

答案 0 :(得分:1)

{}替换为[]并使用json模块解析:

>>> import json
>>> s = "{ 1, 2, 4, 6, 3 }"
>>> json.loads(s.replace("{","[").replace("}","]"))
[1, 2, 4, 6, 3]

答案 1 :(得分:0)

简单的方法是剥离括号,用逗号分割并转换类型。

System.Web

执行此操作的正确方法与编译器执行此操作的方式相同:使用类似PLY的库在解析之前对输入进行标记化。

(另外,你应该努力做自己的功课并学会写出正确的英语。)

答案 2 :(得分:0)

您可以利用tryexcept来完成此任务。基本上你尝试将字符串的每个字符转换为int,如果成功,则在Python引发错误时将其附加到列表中 - 因为无法转换为int-然后不会附加任何内容。也许这不是最短的代码,但它绝对是非常易读的。

s = '{ 1, 2, 4, 6, 3 }'
result = []

for item in s:
    try:
        result.append(int(item))
    except:
        pass

print(result)
>>>[1, 2, 4, 6, 3]