我有一个这样的字符串(有 n 个元素):
input = 'John, 16, random_word, 1, 6, ...'
如何将其转换为这样的列表?我想用“,”作为分隔符。
output = [John, 16, random_word, 1, 6, ...]
我有一个这样的字符串(有 n 个元素):
input = 'John, 16, random_word, 1, 6, ...'
如何将其转换为这样的列表?我想用“,”作为分隔符。
output = [John, 16, random_word, 1, 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', '...']
我在这里所做的是使用列表推导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
用作变量名,因为这样会隐藏内置函数。
您也可以仅split
on ', '
,但您必须绝对确保逗号后始终有一个空格(考虑换行符等)
你的意思是output = ['John', '16', 'random_word', '1', '6', ...]
?你可以像output = inpt.split(', ')
. 这也删除了 . 之后的空格,
。
使用拆分功能。
output = input.split(', ')
如果我理解正确,只需执行以下操作:
output = input.split(',')
之后您可能需要修剪每个结果字符串,因为split
不关心空格。
问候, 马特