2013-10-10 91 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

哈哈,是的,我同意,但我正在研究正則表達式,而且你知道:如果你有錘子,每個問題都會像釘子一樣看起來像。 –