文章出處

What is key=lambda in python,什么是key = lambda在python。

A lambda is an anonymous function:

f = lambda: ‘foo’
print f()
foo
It is often used in functions such as sorted() that take a callable as a parameter (often the key keyword parameter). You could provide an existing function instead of a lambda there too, as long as it is a callable object.

Take the sorted() function as an example. It’ll return the given iterable in sorted order:

sorted([‘Some’, ‘words’, ‘sort’, ‘differently’])
[‘Some’, ‘differently’, ‘sort’, ‘words’]
but that sorts uppercased words before words that are lowercased. Using the key keyword you can change each entry so it’ll be sorted differently. We could lowercase all the words before sorting, for example:

def lowercased(word): return word.lower()

lowercased(‘Some’)
‘some’
sorted([‘Some’, ‘words’, ‘sort’, ‘differently’], key=lowercased)
[‘differently’, ‘Some’, ‘sort’, ‘words’]
We had to create a separate function for that, we could not inline the def lowercased() line into the sorted() expression:

sorted([‘Some’, ‘words’, ‘sort’, ‘differently’], key=def lowercased(word): return word.lower())
File “”, line 1
sorted([‘Some’, ‘words’, ‘sort’, ‘differently’], key=def lowercased(word): return word.lower())
^
SyntaxError: invalid syntax
A lambda on the other hand, can be specified directly, inline in the sorted() expression:

sorted([‘Some’, ‘words’, ‘sort’, ‘differently’], key=lambda word: word.lower())
[‘differently’, ‘Some’, ‘sort’, ‘words’]
Lambdas are limited to one expression only, the result of which is the return value.

There are loads of places in the Python library, including built-in functions, that take a callable as keyword or positional argument. There are too many to name here, and they often play a different role.

看文倉www.kanwencang.com網友整理上傳,為您提供最全的知識大全,期待您的分享,轉載請注明出處。
歡迎轉載:http://www.kanwencang.com/bangong/20170302/109064.html

文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()