Python はリスト内の各要素を処理します: map()

元 

 2023/1/10、本日コードを実行する際、カスタムデータセットを使用し、インデックスに従ってデータセットを分割する必要がありますが、「int 32」のインデックスを与えられたため、次のエラーが報告されました:

IndexError: 整数、スライス (`:`)、リスト、タプル、および long または bool テンソルのみが有効なインデックスです (int32 を取得)。

エラーメッセージによると、型エラー「IndexError」です。サポートするには「整数」またはその他の型が必要なので、ここではインデックスを整数型として直接処理します: int (x) は問題ありません。

リスト内の各要素を int で処理するエレガントな方法がないため、本日のブログに登場しました


map() は、反復されたシーケンス内の各要素に対して関数操作を実行します

備考: 「set collection」または「type() tuple」と混同される可能性があります

最初のパラメーター関数は、パラメーター シーケンス内の各要素を使用して関数関数を呼び出します (カスタマイズすることもできますが、多くの場合、いくつかの非常に単純な操作を実行するためです。ラムダ匿名関数を直接使用する方が便利です)。 return contains 関数 function が値の新しいリストを返すたびに。

文法

map() 関数の構文:

map(関数、イテラブル、...)

パラメータ

  • 関数 -- 関数
  • iterable – 1 つ以上のシーケンス

コード例:

注: ★★ ★ Lambda匿名関数は非常に一般的に使用されます

>>> def square(x) :         # 计算平方数
...     return x ** 2
...
>>> map(square, [1,2,3,4,5])    # 计算列表各个元素的平方
<map object at 0x100d3d550>     # 返回迭代器
>>> list(map(square, [1,2,3,4,5]))   # 使用 list() 转换为列表
[1, 4, 9, 16, 25]
>>> list(map(lambda x: x ** 2, [1, 2, 3, 4, 5]))   # 使用 lambda 匿名函数
[1, 4, 9, 16, 25]
>>>

または、たとえば、各要素を整数に変換するには:

list(map(int, [1,2,3,4,5]))

Python map() 関数 | 初心者向けチュートリアル

おすすめ

転載: blog.csdn.net/weixin_43135178/article/details/128624665