在Python 3.3中从字符串创建一个列表

时间:2012-12-13 19:46:53

标签: python python-3.x

我有一个这样的字符串(有n个元素):

input = 'John, 16, random_word, 1, 6, ...'

如何将其转换为此类列表?我希望','成为分隔符。

output = [John, 16, random_word, 1, 6, ...]

4 个答案:

答案 0 :(得分:6)

您可以使用input.split(','),但正如其他人所说,您必须处理前导和尾随空格。可能的解决方案是:

  • 没有正则表达式:

    In [1]: s = 'John, 16, random_word, 1, 6, ...'
    
    In [2]: [subs.strip() for subs in s.split(',')]
    Out[2]: ['John', '16', 'random_word', '1', '6', '...']
    

    我在这里做的是使用list comprehension,我在其中创建了一个列表,其元素由s.split(',')中的字符串通过调用strip方法创建。 这相当于

    strings = []
    for subs in s.split(','):
        strings.append(subs)
    print(subs)
    
  • regex

    In [3]: import re
    
    In [4]: re.split(r',\s*', s)
    Out[4]: ['John', '16', 'random_word', '1', '6', '...']
    

此外,尽量不要将input用作变量名称,因为您正在隐藏the built-in function

你也可以在split', ',但你必须绝对确定逗号之后总是有空格(考虑换行等)。

答案 1 :(得分:4)

你的意思是output = ['John', '16', 'random_word', '1', '6', ...]?你可以像output = inpt.split(', ')那样拆分它。这也会删除,之后的空格。

答案 2 :(得分:1)

使用拆分功能。

output = input.split(', ')

答案 3 :(得分:0)

如果我理解正确,只需:

output = input.split(',')

之后你可能需要修剪每个结果字符串,因为split不关心空格。

此致 马特