Python 每两个逗号剪切一个字符串
我想把我的字符串和逗号分开,但我不能,你能帮我吗。 这就是我想要的:Python 每两个逗号剪切一个字符串,python,string,list,split,Python,String,List,Split,我想把我的字符串和逗号分开,但我不能,你能帮我吗。 这就是我想要的:['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(',', comp
['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
结果:
感谢您提前为您提供答案一个快速解决方法可以是先用逗号分隔元素,然后用两个字符将元素再次连接在一起。比如:
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']
首先用逗号分割字符串,然后用
zip
将一个interable划分为长度为n的子序列(在本例中,n是2)
>>> s = 'nb1,nb2,nb3,nb4,nb5,nb6'
>>> [','.join(x) for x in zip(*[iter(s.split(','))]*2)]
['nb1,nb2', 'nb3,nb4', 'nb5,nb6']
>>> s = 'nb1,nb2,nb3,nb4,nb5,nb6'
>>> [','.join(x) for x in zip(*[iter(s.split(','))]*2)]
['nb1,nb2', 'nb3,nb4', 'nb5,nb6']