「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Python 3 の `map()` イテレータからリストを取得するにはどうすればよいですか?

Python 3 の `map()` イテレータからリストを取得するにはどうすればよいですか?

2024 年 12 月 21 日に公開
ブラウズ:142

How Do I Get a List from Python 3's `map()` Iterator?

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]]

この式はマップと同じ結果を生成します() 上の例。

マップ オブジェクトの反復処理直接

特定のシナリオでは、マップ オブジェクトをリストに変換する必要がない場合があります。 for ループを使用してマップ オブジェクトを直接反復できます:

for c in map(chr, [65, 66, 67, 68]):
    print(c)

このコードは、不要なリストを作成せずに文字「ABCD」を出力します。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3