2016-06-29 9 views
-2

Python 2.7では、以下のラムダ式の論理は何ですか、この部分で混乱しているのはint(s)です。これはsと呼ばれる変数のようです。Python 2.7ラムダ式の問題

x = [tuple(map(lambda s: int(s), x.split(':'))) for x in y.split(' ')] 

事前のおかげで、

リン
+1

についての詳細を読むことができます。 – Kasramvd

+1

正確な重複はありませんが、役に立つかもしれません:http://stackoverflow.com/questions/890128/why-are-python-lambdas-useful?lq=1 – Michael0x2a

+0

@Kasramvd、ありがとうございました。したがって、コードは 'x.split( ':')'から返された各項目に対して明示的な型変換を行い、タプルを形成します。 –

答えて

4

lambda関数mapと共に使用したので、lambdaのパラメータをmapの第2引数から渡されます。

にすべてのアイテムiterableを関数を適用し、 結果のリストを返す:map作品はあなたがラムダはそのパラメータを取る方法をよりよく理解するのに役立ちます方法を理解します。追加の反復可能な引数が渡された場合、この関数は 多くの引数とを並列

内のすべての 反復可能オブジェクトからアイテムに適用されていることを取らなければならないので、sが反復可能x.split(':')から各項目を表し、int(s)は、アイテムの明示的なキャストを意味sここで、int(x)lambdaの戻りオブジェクトです。

あなたはそれが `lambda`関数に渡すの主張だことlambdamap

+0

モーゼに感謝、投票してください。したがって、コードは 'x.split( ':')'から返された各項目に対して明示的な型変換を行い、タプルを形成します。 –

+1

正確です。あなたは私がやったよりもうまく言いました。 –

+0

モーゼに感謝します。あなたの答えを答えにしてください。 :) –