- Functional Python Programming
- Steven F. Lott
- 233字
- 2021-08-27 19:20:22
Higher-order functions
We can achieve expressive, succinct programs using higher-order functions. These are functions that accept a function as an argument or return a function as a value. We can use higher-order functions as a way to create composite functions from simpler functions.
Consider the Python max() function. We can provide a function as an argument and modify how the max() function behaves.
Here's some data we might want to process:
>>> year_cheese = [(2000, 29.87), (2001, 30.12), (2002, 30.6), (2003,
30.66),(2004, 31.33), (2005, 32.62), (2006, 32.73), (2007, 33.5),
(2008, 32.84), (2009, 33.02), (2010, 32.92)]
We can apply the max() function, as follows:
>>> max(year_cheese) (2010, 32.92)
The default behavior is to simply compare each tuple in the sequence. This will return the tuple with the largest value on position 0.
Since the max() function is a higher-order function, we can provide another function as an argument. In this case, we'll use lambda as the function; this is used by the max() function, as follows:
>>> max(year_cheese, key=lambda yc: yc[1]) (2007, 33.5)
In this example, the max() function applies the supplied lambda and returns the tuple with the largest value in position 1.
Python provides a rich collection of higher-order functions. We'll see examples of each of Python's higher-order functions in later chapters, primarily in Chapter 5, Higher-Order Functions. We'll also see how we can easily write our own higher-order functions.
- C#高級編程(第10版) C# 6 & .NET Core 1.0 (.NET開發經典名著)
- Advanced Machine Learning with Python
- Debian 7:System Administration Best Practices
- Mastering C# Concurrency
- 零基礎學C語言第2版
- C語言程序設計習題與實驗指導
- Python程序設計開發寶典
- Python趣味編程與精彩實例
- Mastering HTML5 Forms
- Learning Bootstrap 4(Second Edition)
- Arduino電子設計實戰指南:零基礎篇
- Mastering Concurrency in Python
- Java程序設計
- Magento 2 Developer's Guide
- Building Microservices with .NET Core 2.0(Second Edition)