2012-05-23 45 views
4

在Python3中,许多方法正在返回迭代器或生成器对象(而不是python2中的列表或其他重对象)。Python3 split()与生成器

然而,我发现,分割字符串仍返回list,而不是generatoriteator

~$ python3 
Python 3.2.2 
(...) 
>>> type('a b c d'.split()) 
<class 'list'> 

是否有针对的buildin使用generatoriterator分割字符串?

(我知道我们可以通过我们自己拆呢,写漂亮的发电机的功能。我很好奇,如果有东西在标准库或语言要做到这一点)从重新模块

回答

3

退房re.finditer =>Python Docs

简言之:

“”” 返回一个迭代产生超过在串中的RE图案中的所有非重叠的匹配的匹配对象的字符串扫描的左到右,和匹配项的顺序返回。发现空的匹配包含在结果中,除非t嘿触摸另一场比赛的开始。 “””

我认为它会做你的需要,例如:。

import re 
text = "This is some nice text" 
iter_matches = re.finditer(r'\w+', text) 
for match in iter_matches: 
    print(match.group(0)) 
+0

很高兴你已经从文件中指出,这是我需要 –

+0

@JBernardo我已经看到了这个 - 在评论之前先查看你的帖子下的评论。谢谢:) –