Pythonでイテラブルに関数をマッピングする方法


  1. map()関数を使用する方法: map()関数は、第一引数に関数、第二引数以降にイテラブルオブジェクトを受け取ります。関数をイテラブルの各要素に適用し、新しいイテラブルオブジェクトを返します。

    numbers = [1, 2, 3, 4, 5]
    squared_numbers = map(lambda x: x  2, numbers)
    print(list(squared_numbers))  # [1, 4, 9, 16, 25]
  2. リスト内包表記を使用する方法: リスト内包表記を使用して、イテラブルの各要素に対して関数を適用し、新しいリストを生成することができます。

    numbers = [1, 2, 3, 4, 5]
    squared_numbers = [x  2 for x in numbers]
    print(squared_numbers)  # [1, 4, 9, 16, 25]
  3. generator式を使用する方法: generator式を使用すると、イテラブルの各要素に対して関数を適用し、ジェネレータオブジェクトを返します。これはメモリ効率が高く、大きなデータセットに適しています。

    numbers = [1, 2, 3, 4, 5]
    squared_numbers = (x  2 for x in numbers)
    print(list(squared_numbers))  # [1, 4, 9, 16, 25]
  4. numpyを使用する方法: イテラブルがnumpy配列の場合、numpyのベクトル演算を使用して関数を適用できます。

    import numpy as np
    numbers = np.array([1, 2, 3, 4, 5])
    squared_numbers = np.square(numbers)
    print(squared_numbers)  # [1, 4, 9, 16, 25]

これらの方法を使用すると、イテラブルオブジェクトに対して関数をマッピングすることができます。適用する関数やイテラブルの種類によって、最適な方法を選択してください。