2013-10-10 90 views

回答

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/

+0

请你解释一下这是如何工作? – iabestever

+3

鸡血和pentagrams –

+0

我从哪里来? – iabestever

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 
+1

+1虽然这让我想起那句话“我有一个问题,我认为'我知道我使用正则表达式'... “ –

+1

哈哈,是的,我同意,但我正在研究正则表达式,而且你知道:如果你有锤子,每个问题都会像钉子一样看起来像。 –