例如,我有一个字符串x = '1,test, 2,3,4,[5,6,7],9'
,我想将其拆分为[‘1’,’test’,’2’,’3’,’4’,’[5,6,7]’,’9’]
。
我尝试使用split(",")
但由于列表中的","
而无法正常工作。
答案 0 :(得分:3)
你可以破解csv来执行此操作:
>>> import csv
>>> s='1,test, 2,3,4,[5,6,7],9'
>>> next(csv.reader([s.replace('[','"').replace(']','"')]))
['1', 'test', ' 2', '3', '4', '5,6,7', '9']
如果你想要大括号:
>>> ["[{}]".format(e) if "," in e else e for e in next(csv.reader([s.replace('[','"').replace(']','"')]))]
['1', 'test', ' 2', '3', '4', '[5,6,7]', '9']
或者,使用regex:
>>> import re
>>> re.findall(r'\[[^\]]+\]|[^,]+', s)
['1', 'test', ' 2', '3', '4', '[5,6,7]', '9']
模式解释here