Pythonでは、map
関数を使用してリストや他のイテラブルなオブジェクトに関数を適用することができます。しかし、この関数をネストした形で使用すると、より複雑な操作を行うことが可能になります。
例えば、次のようなリストがあるとします。
lst = [" a , 1 ", " b , 2 "]
このリストを次のようなネストしたリストに変換したいとします。
[["a", "1"], ["b", "2"]]
これを達成するためには、map
関数をネストして使用することができます。以下にそのコードを示します。
f1_a = map(lambda x :[t.strip() for t in x.split(',',1)], lst)
しかし、このコードはPython 2.7では動作しますが、Python 3では動作しません。なぜなら、Python 3のmap
関数はmap
オブジェクトを返し、それを明示的にリストに変換する必要があるからです。
そのため、Python 3では次のように書くことが推奨されています。
f1_b = list(map(lambda x: list(map(lambda t: t.strip(), x.split(',', 1))), lst))
また、ほとんどの場合、map
関数の呼び出しよりもリスト内包表記を使用することが推奨されています。
f1_a = [[t.strip() for t in x.split(',', 1)] for x in lst]
以上がPythonでのネストしたmap
関数の使用方法についての説明です。この機能を活用することで、より複雑なデータ操作を行うことが可能になります。