2

我想知道如何每第 n 个字符/字母(在我的例子中是第 5 个字符/字母)对我的 Python 字符串进行切片。

所以我有这个字符串"ilikestackoverflow",我希望输出是"ilike stack overf low".

4

2 回答 2

4
 x = zip(*[iter(my_array)]*5)

是一种很酷但很难阅读的方法

通常它是通过列表理解完成的

n = 5
x = [my_array[i:i+n] for i in range(0,len(my_array),n)]

这篇文章解释了iter最好的答案 http://www.stavros.io/posts/brilliant-or-insane-code/

于 2013-10-10T18:33:20.000 回答
1

一个好的正则表达式呢?

>>> string = "Ireallylovemyregularexpressions!"
>>> print re.sub(r'(.{5})', r'\1 ', string)
Ireal lylov emyre gular expre ssion s!  

(.{5})每 5 个字符匹配一次,r'\1 '将这 5 个字符替换为相同的 5 个字符加上一个空格字符。


这也有效:

>>> m = re.split(r'(.{5})', 'Ilovestackoverflowsobad')
>>> print m
['', 'Ilove', '', 'stack', '', 'overf', '', 'lowso', 'bad']
>>> for word in m:
...     if word == '':
...         pass
...     else:
...         print word,
... 
Ilove stack overf lowso bad
于 2013-10-10T18:56:44.313 回答