 ## 字幕列表 影片播放

• A mysterious engineer once told me to sort a massive amount of data. When I

• asked for the sorting function, I was told a function has no name. Is this

• possible? Doesn't every function need a name? The answer is no. There are

• functions that have no name at all. These nameless functions are known as

• anonymous functions or lambda expressions. Today, we will learn how to

• write and used lambda expressions in Python.

• Get ready for some pithy anonymity.

• Suppose you want to write a function that will compute the value of 3x plus 1.

• The standard approach would be to define a function. Let's call it f with a single

• input X. Next, you would return the value 3x plus 1. If you input 2, you get the

• value 7, so it works nicely. Let us now do this using anonymous

• functions. Before we get started, a quick note. Throughout this video we will use

• the terms "anonymous functions" and "lambda expressions" interchangeably. They both

• mean the same thing. To create a lambda expression, you type the keyword lambda,

• followed by your inputs. Next, type a colon. Finally, enter an expression that

• will be the return value. This anonymous function will take the input X and

• return 3x plus 1, just like the earlier function f. There is a problem, however. We

• cannot use this function because it does not have a name. It is, after all

• anonymous. lambda is not the name of the function.

• It is a Python keyword that says what follows is an anonymous function. So how

• do you use it? One way is to give it a name. Let us call this lambda expression

• G. Now, you can use this like any other function. If you input 2, you still get 7.

• Let us now see a lambda expression with more than one input. Suppose you are

• processing user data from a web registration form, and would like to

• combine the first and last names into a single full name for displaying on the

• user interface. We will call this lambda expression full name. This anonymous

• function will have two inputs: first name and last name.

• For both the first and last names, we will remove the leading and trailing

• whitespace with the strip function. We will also ensure that only the first

• letter of each string is capitalized with the title function. This is

• necessary because humans are sloppy when typing. Notice we separated the first and

• last names with a space. Let us now test this lambda expression.

• You use it just like any other function. Outstanding. We should not judge Euler's

• typing skills. This is the first time he has ever used a computer. Here is the

• general way to create a lambda expression: you type the keyword lambda

• followed by zero or more inputs. Just like functions, it is perfectly

• acceptable to have anonymous functions with no inputs. Next, type a colon. Then

• finally, you enter a single expression. This expression is the return value. You

• cannot use lambda expressions for multi-line functions. Let us now see a

• common use of lambda expressions where we do not give it a name. Suppose we have

• a list of science fiction authors. We would like to sort this list by last

• name. Notice that some of these authors have a middle name, while others have

• initials. Our strategy will be to create an anonymous function that extracts the

• last name, and uses that as the sorting value. Lists have a built-in method

• called sort. To see how to use it call the help function on the method name. The

• key argument is a function that will be used for sorting. We will pass it a

• lambda expression. To access the last name, split the string into pieces

• wherever it has a space. Next, access the last piece by index negative 1. As a

• final precaution, convert the string to lowercase. This way, the sorting is not

• case-sensitive. Trust me - some people do not know how to

• use the shift key. The list is now in alphabetical order.

• These names are a pleasure to read.

• We must go deeper. Next we will write a function that makes functions.

• Suppose you are working with quadratic functions. Perhaps you are

• computing the trajectories of cannonballs - something you should know

• how to do before becoming a pirate. To do this, let's write a function called build

• quadratic function. The inputs are the three coefficients A, B, and C. Naturally,

• we write a docstring. And with a single line we return an

• anonymous quadratic function with these coefficients. Let's test this by creating

• the function 2x squared plus 3x minus 5. If you test this for the input 0 1 & 2

• you can see this function works correctly. And just for bites and giggles,

• let's make and use a quadratic function without ever giving it a name. Let's

• create a different function and then pass in the value 2. This code creates

• the function 3x squared plus 1 and passes in the value 2 which should give

• us 13... and it does. This is a useful demonstration, but it is not the most

• readable code. Sometimes, an extra line is perfectly fine.

• Lambda expressions are quite useful when you need a short, throwaway function.

• Something simple that you will only use once.

• Common applications are sorting and filtering data.

• And while we are on the subject, did you know that Socratica has a sorted

• list of Python videos? Unlike lambda expressions, we would prefer NOT to

• remain anonymous... so if you know someone who is learning Python or SHOULD learn

• Python, please, send them our way.

• We will upgrade their knowledge banks as best we can...

A mysterious engineer once told me to sort a massive amount of data. When I

B1 中級

# Lambda表達式和匿名函數 || Python教程 || 學習Python編程 (Lambda Expressions & Anonymous Functions || Python Tutorial || Learn Python Programming)

• 2 0
林宜悉 發佈於 2021 年 01 月 14 日