25 IPython Tips for Your Next Advent of Code
I don't always do the Advent of Code challenges. But when I do, I do them in IPython. Let me show you why.
type() vs. isinstance()
What's the difference between type() and isinstance() methods, and which one is better for checking the type of an object?
Why iterating over the whole list is a bad idea, what data structure is best for membership testing, and when it makes sense to use it?
Checking for True or False
How can we compare a variable to True or False, what's the difference between "is" and "==" operators, and what are truthy values?
What's the fastest way to sort a list? When can you use sort() and when you need to use sorted() instead?
For Loop vs. List Comprehension
Simple "for loops" can be replaced with a list comprehension. But is it going to make our code faster? And what limitations list comprehension has?
Dictionaries in the latest Python versions preserve the insertion order. So, is there any reason to use the OrderedDict as we used to do in the past?
Easy Speedup Wins With Numba
Numba library has plenty of tools to speed up your mathematical-heavy programs. From a simple @jit decorator, all the way to running your code on a CUDA GPU.
Find Item in a List
How to quickly find something in a collection of items, like a list or a range? When a generator expression is a great solution, and when it's not?
Ask for Forgiveness or Look Before You Leap?
Is it faster to "ask for forgiveness" or "look before you leap" in Python? And when it's better to use one over the other?