ホームページ >バックエンド開発 >Python チュートリアル >Python でイテレータが不規則にネストされたリストを効率的に平坦化するにはどうすればよいでしょうか?
ネストされたリストを平坦化するための既存のソリューションは [[[1, 2, 3], [ のような構造では失敗すると述べました。 4、5]]、6]。このクエリは、特に反復子を使用した代替アプローチの実現可能性を調査します。
提案されたアプローチ:
提案されたソリューションには、ジェネレーター関数を活用して平坦化プロセスを簡素化し、パフォーマンスを向上させることが含まれます。 .
Python 2実装:
from collections import Iterable def flatten(xs): for x in xs: if isinstance(x, Iterable) and not isinstance(x, basestring): for item in flatten(x): yield item else: yield x
Python 3 実装:
from collections.abc import Iterable def flatten(xs): for x in xs: if isinstance(x, Iterable) and not isinstance(x, (str, bytes)): yield from flatten(x) else: yield x
反復子の利点:
結論:
反復子を利用した提案されたアプローチは、不規則なリストのリストを平坦化する効果的かつ効率的な方法を提供します。他の方法と比較して、任意のネストの深さのケースに対処し、再帰的または手動の平坦化手法の欠点を回避します。
以上がPython でイテレータが不規則にネストされたリストを効率的に平坦化するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。