リストを返すマップ機能には、特にインタラクティブセッション中に、入力を節約できるという利点があります。リストを返すlmap
関数を(python2と同様に)定義できます。imap
lmap = lambda func, *iterable: list(map(func, *iterable))
lmap
次に、の代わりに呼び出すmap
と、ジョブが実行
されます。よりもlmap(str, x)
5文字短く(この場合は30%)、list(map(str, x))
確かに。よりも短くなり[str(v) for v in x]
ます。同様の関数を作成することもできますfilter
。
元の質問にコメントがありました:
すべてのPython3バージョンに適用されるため、Python 3. *でリストを返すには、Getting map()に名前を変更することをお勧めします。これを行う方法はありますか?–meawoppl1月24日17:58
それは可能ですが、それは非常に悪い考えです。楽しみのために、これがあなたがそれをするかもしれない(しかしすべきではない)方法です:
__global_map = map #keep reference to the original map
lmap = lambda func, *iterable: list(__global_map(func, *iterable)) # using "map" here will cause infinite recursion
map = lmap
x = [1, 2, 3]
map(str, x) #test
map = __global_map #restore the original map and don't do that again
map(str, x) #iterator