2017-05-02 56 views
-4

例如,我有一個字符串x = '1,test, 2,3,4,[5,6,7],9',我想將其拆分爲[‘1’,’test’,’2’,’3’,’4’,’[5,6,7]’,’9’]如何拆分包含列表的字符串(作爲字符串)

我試過使用split(",")但由於列表本身內部的","不起作用。

+0

如果'x ='1,[2'或'x ='1,2,'?那些可能嗎? –

+3

@RomanPerekhrest我只是好奇你爲什麼要讓人們停下來投票?你不贊同這種低質量的格式不好的問題,沒有MCVE,並且在某些情況下沒有明確的輸入和輸出?有什麼我失蹤? –

+0

@ChristianDean,如果OP沒有反映​​出 – RomanPerekhrest

回答

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

+1

'str.replace'的替代方法:'s.translate(str.maketrans('[]','「''))' – Harvey

相關問題