-4
例如,我有一個字符串x = '1,test, 2,3,4,[5,6,7],9'
,我想將其拆分爲[‘1’,’test’,’2’,’3’,’4’,’[5,6,7]’,’9’]
。如何拆分包含列表的字符串(作爲字符串)
我試過使用split(",")
但由於列表本身內部的","
不起作用。
例如,我有一個字符串x = '1,test, 2,3,4,[5,6,7],9'
,我想將其拆分爲[‘1’,’test’,’2’,’3’,’4’,’[5,6,7]’,’9’]
。如何拆分包含列表的字符串(作爲字符串)
我試過使用split(",")
但由於列表本身內部的","
不起作用。
你能砍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
'str.replace'的替代方法:'s.translate(str.maketrans('[]','「''))' – Harvey
如果'x ='1,[2'或'x ='1,2,'?那些可能嗎? –
@RomanPerekhrest我只是好奇你爲什麼要讓人們停下來投票?你不贊同這種低質量的格式不好的問題,沒有MCVE,並且在某些情況下沒有明確的輸入和輸出?有什麼我失蹤? –
@ChristianDean,如果OP沒有反映出 – RomanPerekhrest