Python 3.x では、map() 関数はデフォルトでリストではなくイテレータを返します。これは、マップされた要素を直接使用したい場合には不便です。
一般的なタスクは、整数のリストを 16 進数表現に変換することです。 Python 2.6 では、以下に示すように、map() 関数を使用することでこれは簡単でした:
# Python 2.6 hex_list = map(chr, [66, 53, 0, 94]) # Return a list of hex characters
しかし、Python 3.1 では、上記のコードはマップ オブジェクトを返します:
# Python 3.1 hex_map = map(chr, [66, 53, 0, 94]) # Return a map object
Python 3.x でマップされた要素の実際のリストを取得するには、list() 関数を使用して変換できます。マップ オブジェクトをリストに変換します:
hex_list = list(map(chr, [66, 53, 0, 94]))
整数のリストを 16 進表現にマッピングする別のアプローチは、次のようにリスト内包表記を使用することです。
hex_list = [chr(n) for n in [66, 53, 0, 94]]
このアプローチでは、map() 関数を使用する必要がなくなり、リストが作成されます。
最初にマップ オブジェクトをリストに変換しなくても、Python 3.x でマップ オブジェクトを反復処理できることに注意してください。
for ch in map(chr, [65, 66, 67, 68]): print(ch) # Prints "ABCD"
以上がPython 3 の `map` オブジェクトをリストに変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。