Functional Programming in Python

Dan Bader
Dan Bader 32 Lessons 1h 25m advanced python

In this course, you’ll learn how to approach functional programming in Python. You’ll start with the absolute basics of Functional Programming (FP). After that, you’ll see hands-on examples for common FP patterns available, like using immutable data structures and the filter(), map(), and reduce() functions. You’ll end the course with actionable tips for parallelizing your code to make it run faster.

You’ll cover:

  1. What functional programming is
  2. How you can use immutable data structures to represent your data
  3. How to use filter(), map(), and reduce()
  4. How to do parallel processing with multiprocessing and concurrent.futures

What’s Included:

Related Learning Paths:

About Dan Bader

Dan Bader is the owner and editor in chief of Real Python and the main developer of the realpython.com learning platform. Dan has been writing code for more than 20 years and holds a master's degree in computer science.

» More about Dan

Each tutorial at Real Python is created by a team of developers so that it meets our high quality standards. The team members who worked on this tutorial are:

Participant Comments

Avatar image for samuelebright

samuelebright on Jan. 30, 2022

Thank you Dan for this course. I’m looking forward to storing data from Excel sheets in immutable data structures and then using some of the strategies from the videos to manipulate the data for use in my programs.

Avatar image for squeakyboots

squeakyboots on April 27, 2021

Thanks so much for this course! I’m excited to try applying this to my own API calls when something might be running more slowly than I’d like.

Avatar image for paulagm12

paulagm12 on Nov. 15, 2020

Great course! It is explained in a very clear way and I have learnt a lot of new and useful things to put into practise in my programming. I really appreciate all the effort put into this.

Avatar image for Ghani

Ghani on Oct. 14, 2020

This functional programming course is really excellent! Although I need to revise it and chew it again, I learned plenty of ways I can make my code more efficient. Thanks Dan.

Avatar image for milangnjatovic

milangnjatovic on April 28, 2020

Great course and even greater presentation. Keep it up.

Avatar image for bennjuguna0

bennjuguna0 on April 13, 2020

Honestly thought it would be harder than this. Many thanks to you for the awesome tutorials.

Avatar image for George Yeboah

George Yeboah on April 10, 2020

Good tutorial I really enjoyed watching it and picking up some cool techniques from it Great work keep it up

Avatar image for zorion

zorion on April 8, 2020

Awesome, thanks Dan! I finally understand what GIL blocks. It was always a black box for me, I knew that there was something wrong in Python parallelism but I didn’t know that it was restricted to threads while computing. Good to know, Good to know!

Avatar image for tinachoudhary

tinachoudhary on April 6, 2020

Thanks a lot for the tutorial, it is explained well.

Avatar image for Axel FAUVEL

Axel FAUVEL on March 27, 2020

Thanks a lot for this course, very well explained :)

Avatar image for Donna van Wyk

Donna van Wyk on Sept. 24, 2019

Wow. I’ve been learning about python a lot of diff ways. Your “simple” explanation of a lambda here finally made it click. I am so excited to go thru all of the courses and really get somewhere.

Avatar image for Shay Elmualem

Shay Elmualem on Aug. 3, 2019

This is great stuff Dan, thanks! I normally, out of habit, just go with the “manual” approach of iterating/looping over and just getting/saving the data I need, I really need to start using these built-ins more! very cool.

Avatar image for senatoduro8

senatoduro8 on July 25, 2019

Thanks Dan. This tutorial is great! It did help me learn new was to use the map, reduce and apply functions creatively.

Avatar image for konk

konk on July 5, 2019

Good tutorial. I’d read about python multiprocessing/threading, but had not yet implemented it. Seeing it in action in this tutorial - wow - quite easy to get going. No reason not to implement when it will help.

← Browse All Courses