我有一个这样的字符串(有n个元素):
input = 'John, 16, random_word, 1, 6, ...'
如何将其转换为此类列表?我希望','成为分隔符。
output = [John, 16, random_word, 1, 6, ...]
答案 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)
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
不关心空格。
此致 马特