【发布时间】:2013-10-18 16:00:49
【问题描述】:
我想知道如何每隔 n 个字符/字母(在我的例子中是第 5 个字符/字母)对我的 Python 字符串进行切片。
所以我有这个字符串"ilikestackoverflow",我希望输出是"ilike stack overf low"。
【问题讨论】:
我想知道如何每隔 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/
【讨论】:
for i in BLAH 创建一个本地范围的 i ... 它的标准列表理解内容
一个好的正则表达式怎么样?
>>> 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
【讨论】: