Skip to main content
 首页 » 编程设计

python之如何根据行内容将行拆分为 0、1 或 2 个数组

2025年05月04日16jiqing9006

我正在编写一个程序,它将接收四种结构之一的输入行:

a,b 
(a,b,c),d 
a,(b,c,d) 
(a,b),(c,d) 

每个括号内的成员数量可能会发生变化。现在,我想将上面的每一行翻译如下

['a','b'] 
[['a','b','c'],'d'] 
['a',['b','c','d']] 
[['a','b'],['c','d']] 

我可以想出一种通过检查每个字符来做到这一点的方法,但是了解 python,我确信有一种方法可以轻松地做到这一点,可能是使用正则表达式。有吗?

编辑:编辑所需的输出。

请您参考如下方法:

考虑:

import re, ast 
 
input = """ 
a,b 
(a,b,c),d 
a,(b,c,d) 
(a,b),(c,d) 
""" 
 
input = re.sub(r'(\w+)', r"'\1'", input) 
for line in input.strip().splitlines(): 
    print ast.literal_eval(line) 
 
> ('a', 'b') 
> (('a', 'b', 'c'), 'd') 
> ('a', ('b', 'c', 'd')) 
> (('a', 'b'), ('c', 'd')) 

这会创建元组,而不是列表,但这很容易解决。