Home Backend Development Python Tutorial Python-Functional Programming Example Tutorial

Python-Functional Programming Example Tutorial

Jun 30, 2017 pm 04:08 PM
programming

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
Copy after login


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
Copy after login

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]
Copy after login

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']
Copy after login

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']
Copy after login

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 。
Copy after login

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
Copy after login

#========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
Copy after login

#========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!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

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

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Remove duplicate values ​​from PHP array using regular expressions Remove duplicate values ​​from PHP array using regular expressions Apr 26, 2024 pm 04:33 PM

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.

What is programming for and what is the use of learning it? What is programming for and what is the use of learning it? Apr 28, 2024 pm 01:34 PM

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.

Problem-Solving with Python: Unlock Powerful Solutions as a Beginner Coder Problem-Solving with Python: Unlock Powerful Solutions as a Beginner Coder Oct 11, 2024 pm 08:58 PM

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

Build browser-based applications with Golang Build browser-based applications with Golang Apr 08, 2024 am 09:24 AM

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.

Get Go modules quickly and easily with Go Get Get Go modules quickly and easily with Go Get Apr 07, 2024 pm 09:48 PM

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.

Collection of C++ programming puzzles: stimulate thinking and improve programming skills Collection of C++ programming puzzles: stimulate thinking and improve programming skills Jun 01, 2024 pm 10:26 PM

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.

Unleash Your Inner Programmer: C for Absolute Beginners Unleash Your Inner Programmer: C for Absolute Beginners Oct 11, 2024 pm 03:50 PM

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

The Key to Coding: Unlocking the Power of Python for Beginners The Key to Coding: Unlocking the Power of Python for Beginners Oct 11, 2024 pm 12:17 PM

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).

See all articles