Udemy
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Development
Web Development Data Science Mobile Development Programming Languages Game Development Database Design & Development Software Testing Software Engineering Development Tools No-Code Development
Business
Entrepreneurship Communications Management Sales Business Strategy Operations Project Management Business Law Business Analytics & Intelligence Human Resources Industry E-Commerce Media Real Estate Other Business
Finance & Accounting
Accounting & Bookkeeping Compliance Cryptocurrency & Blockchain Economics Finance Finance Cert & Exam Prep Financial Modeling & Analysis Investing & Trading Money Management Tools Taxes Other Finance & Accounting
IT & Software
IT Certification Network & Security Hardware Operating Systems Other IT & Software
Office Productivity
Microsoft Apple Google SAP Oracle Other Office Productivity
Personal Development
Personal Transformation Personal Productivity Leadership Career Development Parenting & Relationships Happiness Esoteric Practices Religion & Spirituality Personal Brand Building Creativity Influence Self Esteem & Confidence Stress Management Memory & Study Skills Motivation Other Personal Development
Design
Web Design Graphic Design & Illustration Design Tools User Experience Design Game Design Design Thinking 3D & Animation Fashion Design Architectural Design Interior Design Other Design
Marketing
Digital Marketing Search Engine Optimization Social Media Marketing Branding Marketing Fundamentals Marketing Analytics & Automation Public Relations Advertising Video & Mobile Marketing Content Marketing Growth Hacking Affiliate Marketing Product Marketing Other Marketing
Lifestyle
Arts & Crafts Beauty & Makeup Esoteric Practices Food & Beverage Gaming Home Improvement Pet Care & Training Travel Other Lifestyle
Photography & Video
Digital Photography Photography Portrait Photography Photography Tools Commercial Photography Video Design Other Photography & Video
Health & Fitness
Fitness General Health Sports Nutrition Yoga Mental Health Dieting Self Defense Safety & First Aid Dance Meditation Other Health & Fitness
Music
Instruments Music Production Music Fundamentals Vocal Music Techniques Music Software Other Music
Teaching & Academics
Engineering Humanities Math Science Online Education Social Science Language Teacher Training Test Prep Other Teaching & Academics
AWS Certification Microsoft Certification AWS Certified Solutions Architect - Associate AWS Certified Cloud Practitioner CompTIA A+ Cisco CCNA Amazon AWS CompTIA Security+ AWS Certified Developer - Associate
Graphic Design Photoshop Adobe Illustrator Drawing Digital Painting InDesign Character Design Canva Figure Drawing
Life Coach Training Neuro-Linguistic Programming Personal Development Mindfulness Meditation Personal Transformation Life Purpose Emotional Intelligence Neuroscience
Web Development JavaScript React CSS Angular PHP WordPress Node.Js Python
Google Flutter Android Development iOS Development Swift React Native Dart Programming Language Mobile Development Kotlin SwiftUI
Digital Marketing Google Ads (Adwords) Social Media Marketing Google Ads (AdWords) Certification Marketing Strategy Internet Marketing YouTube Marketing Email Marketing Google Analytics
SQL Microsoft Power BI Tableau Business Analysis Business Intelligence MySQL Data Modeling Data Analysis Big Data
Business Fundamentals Entrepreneurship Fundamentals Business Strategy Online Business Business Plan Startup Blogging Freelancing Home Business
Unity Game Development Fundamentals Unreal Engine C# 3D Game Development C++ 2D Game Development Unreal Engine Blueprints Blender
30-Day Money-Back Guarantee
Development Programming Languages Python

Python 3: Deep Dive (Part 3 - Hash Maps)

Dictionaries, Sets, and Related Data Structures
Highest Rated
Rating: 4.9 out of 54.9 (631 ratings)
13,159 students
Created by Fred Baptiste
Last updated 11/2020
English
30-Day Money-Back Guarantee

What you'll learn

  • Associative Arrays
  • Hash Tables and Hash Functions
  • Python's implementation of hash tables
  • Dictionaries and Sets
  • Defining hash functions for our custom classes and why that is useful
  • Creating customized dictionaries using the UserDict class
  • defaultdict
  • OrderedDict and Python3.6+ equivalences
  • Counter (multi-sets)
  • ChainMap
  • Serialization and Deserialization
  • JSON serialization/deserialization
  • Intro to JSONSchema, Marshmallow, PyYaml and Serpy 3rd party libraries
Curated for the Udemy for Business collection

Course content

11 sections • 80 lectures • 20h 28m total length

  • Preview12:56
  • Preview07:22

  • Preview03:24
  • Associative Arrays
    05:40
  • Hash Maps
    24:11
  • Python Dictionaries
    09:38
  • Python's hash() Function
    08:03

  • Introduction
    01:13
  • Creating Dictionaries - Lecture
    13:08
  • Creating Dictionaries - Coding
    24:01
  • Common Operations - Lecture
    08:11
  • Common Operations - Coding
    32:43
  • Dictionary Views - Lecture
    10:41
  • Dictionary Views - Coding
    30:12
  • Updating, Merging, and Copying - Lecture
    12:20
  • Updating, Merging, and Copying - Coding
    33:55
  • Custom Classes and Hashing - Lecture
    20:25
  • Custom Classes and Hashing - Coding
    33:54

  • Exercises
    06:21
  • Solution 1
    04:34
  • Solution 2
    02:04
  • Solution 3
    07:14
  • Solution 4
    05:22

  • Introduction
    01:55
  • Basic Set Theory
    12:35
  • Python Sets
    08:58
  • Creating Sets - Lecture
    03:40
  • Creating Sets - Coding
    14:45
  • Common Operations - Lecture
    03:12
  • Common Operations - Coding
    15:17
  • Set Operations - Lecture
    08:00
  • Set Operations - Coding
    20:30
  • Update Operations - Lecture
    06:08
  • Update Operations - Coding
    21:07
  • Copying Sets - Lecture
    01:13
  • Copying Sets - Coding
    08:10
  • Frozen Sets - Lecture
    06:54
  • Frozen Sets - Coding
    26:37
  • Dictionary Views - Lecture
    09:27
  • Dictionary Views - Coding
    27:58

  • Project 1 - Goals
    05:30
  • Project 1 - Solution
    49:37

  • Introduction
    04:29
  • Pickling - Lecture
    05:57
  • Pickling - Coding
    28:47
  • JSON Serialization - Lecture
    07:22
  • JSON Serialization - Coding
    22:29
  • Custom JSON Encoding - Lecture
    02:30
  • Custom JSON Encoding - Coding
    37:36
  • Using JSONEncoder - Lecture
    11:36
  • Using JSONEncoder - Coding
    34:00
  • Custom JSON Decoding - Lecture
    16:35
  • Custom JSON Decoding - Coding
    51:58
  • Using JSONDecoder - Lecture
    01:29
  • Using JSONDecoder - Coding
    41:00
  • Preview26:06
  • Marshmallow
    33:36
  • PyYaml
    18:16
  • Serpy
    08:56

  • Exercises
    03:48
  • Solution 1
    15:21
  • Solution 2
    21:01
  • Solution 3
    17:04

  • Introduction
    02:02
  • DefaultDict - Lecture
    06:33
  • DefaultDict - Coding
    30:46
  • OrderedDict - Lecture
    03:40
  • OrderedDict - Coding
    24:22
  • OrderedDict and Python 3.6 Dicts
    31:44
  • Counter - Lecture
    05:01
  • Counter - Coding
    43:44
  • ChainMap - Lecture
    11:08
  • Preview22:44
  • UserDict - Lecture
    05:34
  • UserDict - Coding
    25:38

  • Exercises
    05:34
  • Solution 1
    05:52
  • Solution 2
    04:37
  • Solution 3
    14:29

Requirements

  • This is an advanced course, so a solid Python foundation is necessary
  • Jupyter Notebooks
  • functional programming (zip, map, sorted, any, all, etc)
  • lambdas, closures and decorators
  • built-in decorators such as @lru_cache, @singledispatch and @wraps
  • iterables, iterators, generators and context managers
  • variable scopes and namespaces (globals, locals, etc)
  • ability to install 3rd party libraries (e.g. pip install)

Description

This course is an in-depth look at Python dictionaries.

Dictionaries are ubiquitous in Python. Classes are essentially dictionaries, modules are dictionaries, namespaces are dictionaries, sets are dictionaries and many more.

In this course we'll take an in-depth look at:

  • associative arrays and how they can be implemented using hash maps

  • hash functions and how we can leverage them for our own custom classes

  • Python dictionaries and sets and the various operations we can perform with them

  • specialized dictionary structures such  as OrderedDict and how it relates to the built-in Python3.6+ dict

  • Python's implementation of multi-sets, the Counter class

  • the ChainMap class

  • how to create custom dictionaries by inheriting from the UserDict class

  • how to serialize and deserialize dictionaries to JSON

  • the use of schemas in custom JSON deserialization

  • a brief introduction to some useful libraries such as JSONSchema, Marshmallow, PyYaml and Serpy


***** Prerequisites *****

Please note that this is a relatively advanced Python course, and a strong knowledge of some topics in Python is required. 

Beyond the basics of Python (loops, conditional statements, exception handling, built-in data types, creating classes, etc), you should also have an in-depth understanding of the following topics:

  • functions and functional programming (recursion, *args, **kwargs, zip, map, sorted, any, all, etc)

  • lambdas, closures and decorators (including standard decorators such as @singledispatch, @wraps, etc)

  • iterables, iterators, generators and context managers

  • named tuples

  • variable scopes and namespaces (globals, locals, etc)

For this course you will also need to install some 3rd party libraries, so you need to be comfortable with doing this using the tool of your choice (e.g. pip, conda, etc)

Finally, most of the code in this course is illustrated using the freely available  Jupyter Notebooks, so you will need that as well.

Who this course is for:

  • Python developers who want a deeper understanding of Python dictionaries and related topics

Featured review

James Bell
James Bell
32 courses
14 reviews
Rating: 5.0 out of 5a year ago
You want to pass a tough coding interview? Or you want to invest your finite corporate training budget on a comprehensive Python course - that actually teaches the 'why' as well as the 'how.' Dr. Baptiste put a great deal of thought behind his curriculum. Think of this course as a wonderful reference guide that you'll be able to return to for years to come - to learn the proper implementation. This is perhaps the most organized and concise Python course I've encountered.

Instructor

Fred Baptiste
Professional Developer and Mathematician
Fred Baptiste
  • 4.8 Instructor Rating
  • 8,468 Reviews
  • 30,734 Students
  • 4 Courses

Hi,

My name is Fred Baptiste.

I started my career with a PhD in mathematics and have been programming professionally for over 25 years in a variety of technologies and languages, including Python, .Net (C# and VB), Java, C++, and JavaScript to name a few, and databases including relational SQL databases such as MS SQL Server and Postgres as well as No-SQL databases such as MongoDB, Couchbase and Neo4j.

Since 2011 I have been focused on Python almost exclusively, mainly in REST API development and data management and analysis.

I have spent a lot of time and effort learning and gaining an in-depth understanding of Python and writing idiomatic Python, and I'd like to share that with you.

I'm definitely a Python enthusiast for many reasons, and I'd like to share that passion with you too!

  • Udemy for Business
  • Teach on Udemy
  • Get the app
  • About us
  • Contact us
  • Careers
  • Blog
  • Help and Support
  • Affiliate
  • Impressum Kontakt
  • Terms
  • Privacy policy
  • Cookie settings
  • Sitemap
  • Featured courses
Udemy
© 2021 Udemy, Inc.