gpt4 book ai didi

python - 在尊重括号的同时用逗号拆分列表中的字符串

转载 作者:行者123 更新时间:2023-11-28 20:45:30 24 4
gpt4 key购买 nike

我有一个列表,例如

a = ['john(is,great),paul,school', 'robert,jack,john']

然后我正在构建一个空列表来附加拆分

b = []

然后我这样做

for i in a:
b.append(i.split(','))

但是 list be 是这样出现的

[['john(is', 'great)', 'paul', 'school'], ['robert', 'jack', 'john']]

这样做是因为它在逗号处拆分,但是否有另一种拆分方式,以便输出为

['john(is,great)', 'paul', 'school', 'robert', 'jack', 'john']

最佳答案

您可以使用 list.extend() 单独添加元素:

for i in a:
b.extend(i.split(','))

要在逗号上拆分文本而不是在括号内,您可以使用以下正则表达式:

re.split(r',(?=[^()]*(?:\(|$))', i)

只有在逗号后面没有包含任何括号(左括号或右括号)的文本直到下一个左括号时,才会按逗号拆分。当您有嵌套括号时,此表达式会下降,但适用于您的简单情况:

>>> import re
>>> i = 'john(is,great),paul,school'
>>> re.split(r',+(?=[^()]*(?:\(|$))', i)
['john(is,great)', 'paul', 'school']

对于更复杂的拆分,请使用成熟的解析器。

关于python - 在尊重括号的同时用逗号拆分列表中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23219400/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com