【问题标题】:Python split string every n charPython每n个字符拆分字符串
【发布时间】:2016-01-24 08:31:50
【问题描述】:

我想每隔 n 个字符拆分一个字符串,打印必须是这样的:

MISSISSIPPI => MI*SS*IS*SI*PP*I

我已经完成了一个程序,但我不知道如何将, 更改为*。代码如下:

n=input('chunk size')
s=input('Add word')
import re
r=[s[i:i+n] for i in range(0, len(s), n)]
print (r)

这是输出:

['MI', 'SS', 'IS', 'SI', 'PP', 'I']

但我希望它是这样的:

MI*SS*IS*SI*PP*I

【问题讨论】:

  • 你真的想要输出中的括号吗?

标签: python string python-2.7 join python-2.x


【解决方案1】:

您可以为此使用str.join()

>>> '*'.join(r)
'MI*SS*IS*SI*PP*I'

它的作用是遍历r 中的字符串,并加入它们,插入'*'

【讨论】:

    【解决方案2】:

    你也可以使用re模块:

    import re
    
    r = '*'.join(re.findall('..|.$', s))
    

    输出:

    'MI*SS*IS*SI*PP*I'
    

    【讨论】:

      【解决方案3】:

      好吧,现在你只需要添加 1 行:

      r = '*'.join(r)
      

      那么你的程序就变成了

      n=input('chunk size')
      s=input('Add word')
      import re
      r=[s[i:i+n] for i in range(0,len(s),n)]
      r = '*'.join(r)
      print (r)
      

      【讨论】:

        【解决方案4】:

        解压,然后使用自定义分隔符:

        >>> print(*r, sep='*')
        MI*SS*IS*SI*PI
        

        如果您想要输出中的括号,请改用字符串格式。

        >>> print('[{}]'.format('*'.join(r)))
        [MI*SS*IS*SI*PI]
        

        【讨论】:

          【解决方案5】:

          我们可以使用字符串数据结构的split和join方法。

          x = 'MI*SS*IS*SI*PP*I' xlist = x.split('*') '*'.join(xlist)

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-03-17
            • 1970-01-01
            • 2020-08-13
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-05-07
            相关资源
            最近更新 更多