每两个逗号剪切一个字符串

2024-06-28 20:04:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把我的字符串每两个逗号分开,但我不能,你能帮我吗。 这就是我想要的:['nb1,nb2','nb3,nb4','nb5,nb6']

以下是我所做的:

a= 'nb1,nb2,nb3,nb4,nb5,nb6'
compteur=0
for i in a:
    if i==',' :
        compteur+=1
        if compteur%2==0:
           print compteur
           test = a.split(',', compteur%2==0 )
print a
print test

结果:

2
4
nb1,nb2,nb3,nb4,nb5,nb6
['nb1', 'nb2,nb3,nb4,nb5,nb6']

谢谢你的回答


Tags: 字符串intestforifsplitprint逗号
3条回答

一个简单的解决方法是先用逗号分隔元素,然后再用两个元素连接起来。比如:

sub_result = a.split(',')
result = [','.join(sub_result[i:i+2]) for i in range(0,len(sub_result),2)]

这将提供:

>>> result
['nb1,nb2', 'nb3,nb4', 'nb5,nb6']

如果元素的数量是奇数,这也会起作用。例如:

>>> a = 'nb1,nb2,nb3,nb4,nb5,nb6,nb7'
>>> sub_result = a.split(',')
>>> result = [','.join(sub_result[i:i+2]) for i in range(0,len(sub_result),2)]
>>> result
['nb1,nb2', 'nb3,nb4', 'nb5,nb6', 'nb7']

使用列表本身的zip操作来创建对:

a = 'nb1,nb2,nb3,nb4,nb5,nb6'
parts = a.split(',')
# parts = ['nb1', 'nb2', 'nb3', 'nb4', 'nb5', 'nb6']
pairs = list(zip(parts, parts[1:]))
# pairs = [('nb1', 'nb2'), ('nb2', 'nb3'), ('nb3', 'nb4'), ('nb4', 'nb5'), ('nb5', 'nb6')]

现在,您只需再次将每隔一个对加入,即可输出:

list(map(','.join, pairs[::2]))
# ['nb1,nb2', 'nb3,nb4', 'nb5,nb6']

您可以使用regex

In [12]: re.findall(r'([\w]+,[\w]+)', 'nb1,nb2,nb3,nb4,nb5,nb6')
Out[12]: ['nb1,nb2', 'nb3,nb4', 'nb5,nb6']

相关问题 更多 >