5

Python3 では、多くのメソッドがイテレータまたはジェネレータ オブジェクトを返します (python2 のリストやその他の重いオブジェクトの代わりに)。

ただし、文字列を分割すると、 orlistの代わりにまだ返されることがわかりました。generatoriteator

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

or を使用して文字列を分割するためのビルトインはありますgeneratoriterator?

(自分で分割して、素敵なジェネレーター関数を書くことができることは知っています。標準ライブラリまたは言語にこれを行うための何かがあるかどうか興味があります)

4

2 に答える 2

5

re モジュールからチェックアウトre.finditer=> Python Docs

簡単に言えば:

""" 文字列内の RE パターンの重複しないすべての一致に対して一致オブジェクトを生成する反復子を返します。文字列は左から右にスキャンされ、見つかった順序で一致が返されます。別のマッチの始まりに触れる. """

必要なことはしてくれると思います。例えば:

import re
text = "This is some nice text"
iter_matches = re.finditer(r'\w+', text)
for match in iter_matches:
    print(match.group(0))
于 2012-05-23T23:01:08.630 に答える