【问题标题】:How do you split all of a certain character in Python [duplicate]你如何在Python中拆分所有特定字符[重复]
【发布时间】:2017-08-29 23:47:33
【问题描述】:
string="i-want-all-dashes-split"

print(split(string,"-"))

所以我希望输出是:

string=(I,-,want,-,all,-,dashes,-,split)

我基本上想把所有的“-”分开。

【问题讨论】:

  • import re; print(','.join(re.split('(-)', string)))

标签: python python-3.x split


【解决方案1】:
>>> import re
>>> string = "i-want-all-dashes-split"

>>> string.split('-')                 # without the dashes
['i', 'want', 'all', 'dashes', 'split']

>>> re.split('(-)', string)           # with the dashes
['i', '-', 'want', '-', 'all', '-', 'dashes', '-', 'split']

>>> ','.join(re.split('(-)', string)) # as a string joined by commas
'i,-,want,-,all,-,dashes,-,split'

【讨论】:

    【解决方案2】:
    string="i-want-all-dashes-split"
    
    print 'string='+str(string.split('-')).replace('[','(').replace(']',')').replace(' ','-,')
    
    >>>string=('i',-,'want',-,'all',-,'dashes',-,'split')
    

    【讨论】:

      【解决方案3】:

      使用 str 类的 split 函数:

      text = "i-want-all-dashes-split"
      splitted = text.split('-')
      

      splitted的值是一个类似下面的列表:

      ['i', 'want', 'all', 'dashes', 'split']
      

      如果您希望输出为元组,请按照以下代码进行操作:

      t = tuple(splitted)
      ('i', 'want', 'all', 'dashes', 'split')
      

      【讨论】:

        【解决方案4】:
        string="i-want-all-dashes-split"
        print(string.slip('-'))
        # Output:
        ['i', 'want', 'all', 'dashes', 'split']
        

        string.split()
        在 () 中,您可以放置​​分隔符 ('-'),如果不放置任何内容,则默认为 (',')。 你可以做一个函数:

        def spliter(string, delimiter=','): # delimiter have a default argument (',')
            string = string.split(delimiter)
            result = []
            for x, y in enumerate(string):
                result.append(y)
                if x != len(string)-1: result.append(delimiter)
            return result
        

        输出:

        ['i', '-', 'want', '-', 'all', '-', 'dashes', '-', 'split']
        

        【讨论】:

          【解决方案5】:

          你也可以使用这个功能:

          代码:

          def split_keep(s, delim):
          
              s = s.split(delim)
              result = []
          
              for i, n in enumerate(s):
                  result.append(n)
                  if i == len(s)-1: pass
                  else: result.append(delim)
          
              return result
          

          用法:

          split_keep("i-want-all-dashes-split", "-")
          

          输出:

          ['i', '-', 'want', '-', 'all', '-', 'dashes', '-', 'split']
          

          【讨论】:

          • 这不太行。在like 8中你放了d,我很确定你打算放delim,但是在编辑它并将它放入我的代码之后,输出是['i','want','-','all',' -','破折号','-','拆分','-']。它将第一个破折号移动到字符串的最后一部分,
          • 糟糕!刚刚修好了..谢谢!
          猜你喜欢
          • 2023-03-23
          • 2021-03-05
          • 1970-01-01
          • 2022-01-04
          • 2018-08-14
          • 2014-07-22
          • 1970-01-01
          • 2021-01-04
          • 1970-01-01
          相关资源
          最近更新 更多