我想知道如何每第 n 个字符/字母(在我的例子中是第 5 个字符/字母)对我的 Python 字符串进行切片。
所以我有这个字符串"ilikestackoverflow"
,我希望输出是"ilike stack overf low"
.
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/
一个好的正则表达式呢?
>>> 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