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関数の使用方法についての説明です。この機能を活用することで、より複雑なデータ操作を行うことが可能になります。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です