【问题标题】:Cut character string every two commas每两个逗号剪切字符串
【发布时间】:2017-05-09 09:14:58
【问题描述】:

我想用逗号分隔字符串,但我不能,你能帮帮我吗? 这就是我想要的:['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']

提前感谢您的回答

【问题讨论】:

    标签: python string list split


    【解决方案1】:

    您可以使用regex

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

    【讨论】:

      【解决方案2】:

      一个快速的解决方法可能是先用逗号分隔元素,然后然后再将两个元素连接在一起。喜欢:

      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']
      

      【讨论】:

        【解决方案3】:

        您使用列表自身的 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']
        

        【讨论】:

          【解决方案4】:

          首先用逗号分割字符串,然后应用常用习语将一个可交互对象划分为长度为 n 的子序列(在您的情况下,n 为 2)与zip

          >>> s = 'nb1,nb2,nb3,nb4,nb5,nb6'
          >>> [','.join(x) for x in zip(*[iter(s.split(','))]*2)]
          ['nb1,nb2', 'nb3,nb4', 'nb5,nb6']
          

          【讨论】:

            猜你喜欢
            • 2014-07-21
            • 2014-07-15
            • 2014-05-27
            • 1970-01-01
            • 1970-01-01
            • 2017-07-25
            • 2015-01-09
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多