Python 3.x でのマップされたリストの取得: イテレーターとしての map()
Python 3.x では、map() 関数リストの代わりにイテレータを返します。この変更は、メモリ効率を向上させ、パフォーマンスを最適化するために実装されました。ただし、さらに処理するためにマップされた値をリストとして取得する必要がある場合は、課題が生じます。
解決策: イテレータをリストに変換する
マップされた値をリストとして使用する場合は、 list() 関数を使用して、によって返されるイテレータを変換します。 map():
mapped_list = list(map(chr, [66, 53, 0, 94]))
このコードは、マップされた文字を含むリストを返します: ['B', '5', 'x00', '^'].
代替: リスト内包表記を使用する
リストを次のリストに変換するより簡潔な方法マップされた値はリスト内包表記を使用します。
mapped_list = [chr(c) for c in [66, 53, 0, 94]]
この式は、上記の map() の例と同じ結果を生成します。
Map オブジェクトを直接反復処理します
特定のシナリオでは、マップ オブジェクトをリストに変換する必要がない場合があります。 for ループを使用してマップ オブジェクトを直接反復処理できます。
for c in map(chr, [65, 66, 67, 68]): print(c)
このコードは、不要なリストを作成せずに文字「ABCD」を出力します。
以上がPython 3 の `map()` イテレータからリストを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。