ホームページ >バックエンド開発 >Python チュートリアル >Python 3 の `map` オブジェクトをリストに変換するにはどうすればよいですか?

Python 3 の `map` オブジェクトをリストに変換するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-15 02:14:14967ブラウズ

How to Convert Python 3's `map` Object to a List?

Python 3.x で Map オブジェクトをリストに変換する

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。