Python-Functional Programming Example Tutorial
Functional programming uses a series of functions to solve problems. According to general programming thinking, when facing a problem, our way of thinking is "how to do it", while functional programming's way of thinking is "what do I want to do". As for the characteristics of functional programming, we will not summarize it for now. Let us directly use examples to understand what functional programming is.
lambda expression (anonymous function):
How to define ordinary functions and anonymous functions:
#Ordinary function def add( a,b):
return a + bprint add(2,3) #匿名函数add = lambda a,b : a + bprint add(2,3)#========输出===========5 5
Naming rules for anonymous functions, identified by the lamdba keyword, the left side of the colon (:) indicates the parameters received by the function (a, b) , the right side of the colon (:) represents the return value of the function (a+b).
Since lamdba does not need to be named when it is created, it is called an anonymous function ^_^
Map function:
Calculate the length of the string
abc = ['com','fnng','cnblogs']for i in range(len(abc)): print len(abc[i])#========输出===========347
Define abc string array, calculate the length of abc and then loop to output the length of each string in the array.
Let’s take a look at how the map() function implements this process.
abc_len = map(len,['hao','fnng','cnblogs'])print abc_len#========输出===========[3, 4, 7]
Although the output results are the same, their forms are different. The first one is a simple numerical value, and the output of the map() function still remains The format of the array.
Case conversion;
Python provides upper() and lower() to convert case.
#Case conversion ss='hello WORLD!'
print ss.upper() #Convert to uppercase print ss.lower() #Convert to lowercase# ========Output===========HELLO WORLD!
hello world!
Convert through the map() function:
def to_lower(item): return item.lower()name = map(to_lower,['cOm','FNng','cnBLoGs'])print name#========输出===========['com', 'fnng', 'cnblogs']
In this example We can see that we have written a function toUpper. This function does not change the value passed in. It just performs a simple operation on the value passed in and returns it. Then, we use it in the map function to clearly describe what we want to do.
Let’s take a look at how to implement string case conversion in a common way:
abc = ['cOm','FNng','cnBLoGs']lowname = []for i in range(len(abc)): lowname.append(abc[i].lower())print lowname#========输出===========['hao', 'fnng', 'cnblogs']
map() function plus lambda expression (Anonymous function) can achieve more powerful functions.
#Find squares#0*0,1*1,2*2,3*3,....8*8squares = map(lambda x : x*x ,range(9))print squares #========Output===========[0, 1, 4, 9, 16, 25, 36, 49, 64]
Reduce function:
def add(a,b): return a+b add = reduce(add,[2,3,4])print add#========输出===========9 对于Reduce函数每次是需要对两个数据进行处理的,首选取2 和3 ,通过add函数相加之后得到5,接着拿5和4 ,再由add函数处理,最终得到9 。
In the previous map function example, we can see that the map function only processes one data at a time.
Then, we discovered how simple it is to implement factorial through Reduce function and lambda expression:
#5Factorial#5! =1*2*3*4*5print reduce(lambda x,y: x*y, range(1,6))#========Output===========120
In addition to map and reduce, Python also has other auxiliary functions such as filter, find, all, and any (also available in other functional languages), which can make your code more concise and easier to use. read. Let’s look at a more complex example:
#Calculate the value of positive integers in the array number =[2, -5, 9, -7, 2, 5, 4, -1, 0, -3, 8 ]
count = 0
sum = 0for i in range(len(number)):
if number[i]>0: count += 1 sum += number[i]print sum,countif count>0: average = sum/countprint average
#========Output===========30 6 5
If you use functional programming, this example can be written like this:
number =[2, -5, 9, -7, 2, 5, 4, -1, 0, -3, 8] sum = filter(lambda x: x>0, number) average = reduce(lambda x,y: x+y, sum)/len(sum)print average
#========Output===========5
Finally we can see that functional programming has the following benefits:
1) The code is simpler.
2) Data sets, operations, and return values are all put together.
3) When you read the code, there is no loop body, so you can lose some temporary variables and the logic of variables going back and forth.
4) Your code becomes describing what you want to do, rather than how to do it.
The above is the detailed content of Python-Functional Programming Example Tutorial. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

How to remove duplicate values from PHP array using regular expressions: Use regular expression /(.*)(.+)/i to match and replace duplicates. Iterate through the array elements and check for matches using preg_match. If it matches, skip the value; otherwise, add it to a new array with no duplicate values.

1. Programming can be used to develop various software and applications, including websites, mobile applications, games, and data analysis tools. Its application fields are very wide, covering almost all industries, including scientific research, health care, finance, education, entertainment, etc. 2. Learning programming can help us improve our problem-solving skills and logical thinking skills. During programming, we need to analyze and understand problems, find solutions, and translate them into code. This way of thinking can cultivate our analytical and abstract abilities and improve our ability to solve practical problems.

Pythonempowersbeginnersinproblem-solving.Itsuser-friendlysyntax,extensivelibrary,andfeaturessuchasvariables,conditionalstatements,andloopsenableefficientcodedevelopment.Frommanagingdatatocontrollingprogramflowandperformingrepetitivetasks,Pythonprovid

Build browser-based applications with Golang Golang combines with JavaScript to build dynamic front-end experiences. Install Golang: Visit https://golang.org/doc/install. Set up a Golang project: Create a file called main.go. Using GorillaWebToolkit: Add GorillaWebToolkit code to handle HTTP requests. Create HTML template: Create index.html in the templates subdirectory, which is the main template.

Through GoGet, you can quickly and easily obtain Go modules. The steps are as follows: Run in the terminal: goget[module-path], where module-path is the module path. GoGet automatically downloads the module and its dependencies. The location of the installation is specified by the GOPATH environment variable.

C++ programming puzzles cover algorithm and data structure concepts such as Fibonacci sequence, factorial, Hamming distance, maximum and minimum values of arrays, etc. By solving these puzzles, you can consolidate C++ knowledge and improve algorithm understanding and programming skills.

C is an ideal language for beginners to learn programming, and its advantages include efficiency, versatility, and portability. Learning C language requires: Installing a C compiler (such as MinGW or Cygwin) Understanding variables, data types, conditional statements and loop statements Writing the first program containing the main function and printf() function Practicing through practical cases (such as calculating averages) C language knowledge

Python is an ideal programming introduction language for beginners through its ease of learning and powerful features. Its basics include: Variables: used to store data (numbers, strings, lists, etc.). Data type: Defines the type of data in the variable (integer, floating point, etc.). Operators: used for mathematical operations and comparisons. Control flow: Control the flow of code execution (conditional statements, loops).
