2016-08-26 1 views
0

をフィルタリングし、誰もが私はPythonの次のコードを理解するのに役立ちます:str1の中のx [1]:STR1とstr2が文字列であるPythonのラムダとコードと

for i, char in filter(lambda x: x[1] in str1, enumerate(str2)): 
    # do something here ... 

、私は一種の「ラムダXと理解"は条件をフィルタリングしますが、なぜx [1]ですか?

これをどのようにして低レベル(理解しやすい)のPythonコードに変換できますか?

おかげのでenumerates

+0

'enumerate'は、インデックスとアイテムを含む反復可能オブジェクトを返します。したがって、' x'はインデックスを持つ各要素を含むタプルで、 'x [1]'はアイテム(文字)自体です。 – Kasramvd

答えて

3

ためlambda (index, char): char in str1を記述します。

for i, char in enumerate(str2): 
    if char in str1: 
     # do something here 

filterはないそれらの要素をフィルタリング、str2のインデックスと要素からなるタプルのリストを取っていますstr1に表示され、残りのインデックスと要素の繰り返し可能性をstr2から返します。

0

列挙型は、反復可能な値に対して(index, value)のタプルを返します。

xは、インデックスのタプルcharです。

私はこれはと同等の機能現れる明瞭

関連する問題