Python: - 将字符串转换为列表

时间:2015-02-13 12:23:42

标签: python regex string list types

我有一个像groups(1,12,23,12)这样的字符串,我希望将其转换为像[1,12, 23, 12]这样的列表。

我尝试了这段代码,但输出并不是例外。

str = 'groups(1,12,23,12)'
lst = [x for x in str]

请让我知道......!

4 个答案:

答案 0 :(得分:4)

您可以使用re.findall方法。

并且不要使用str作为变量名称。

>>> import re
>>> s = 'groups(1,12,23,12)'
>>> re.findall(r'\d+', string)
['1', '12', '23', '12']
>>> [int(i) for i in re.findall(r'\d+', s)]
[1, 12, 23, 12]

没有正则表达式,

>>> s = 'groups(1,12,23,12)'
>>> [int(i) for i in s.split('(')[1].split(')')[0].split(',')]
[1, 12, 23, 12]

答案 1 :(得分:3)

对于没有正则表达式的方法

>>> a = "groups(1,12,23,12)"
>>> a= a.replace('groups','')
>>> import ast
>>> list(ast.literal_eval(a))
[1, 12, 23, 12]

价:

答案 2 :(得分:1)

  1. 使用正则表达式从输入字符串中查找数字。
  2. 使用map方法将字符串转换为整数。
  3. e.g。

    >>> import re
    >>> a = 'groups(1,12,23,12)'
    >>> re.findall("\d+", a)
    ['1', '12', '23', '12']
    >>> map(int, re.findall("\d+", a))
    [1, 12, 23, 12]
    

答案 3 :(得分:0)

string = "groups(1,12,23,12)".replace('groups(','').replace(')','')
outputList = [int(x) for x in string.split(',')]