20 Must-Know Python Tips & Tricks

Python is a widely-used, high-level programming language that is renowned for its readability and ease of use. With its vast library of modules, it is a versatile language that can be used for a wide range of applications. Whether you’re a seasoned programmer or just starting out, these 20 must-know python tips and tricks will help you write more efficient and effective code. From working with data structures and dates, to logging and testing your code, these tips will help you to optimize your workflow and improve your coding skills. So, if you’re looking to get the most out of Python, read on to discover the essential tips and tricks that every Python programmer should know!

1. Use list comprehensions to simplify code

numbers = [1, 2, 3, 4, 5]
squared_numbers = [num**2 for num in numbers]
print(squared_numbers) # [1, 4, 9, 16, 25]
Python

Here are a few other methods of array manipulation in Python: Array manipulation in Python

2. Use the ‘with’ statement for working with files

The with statement is used to wrap the execution of a block of code with methods defined by a context manager. 

For example:

with open("file.txt", "r") as f:
    content = f.read()
    # do something with the file content
Python

In this example, the open function returns a file object that acts as a context manager, and the file is automatically closed when the block of code within the with statement is exited, even if an exception is raised.

3. Use the ‘enumerate’ function when looping through a list

fruits = ['apple', 'banana', 'cherry']
for index, fruit in enumerate(fruits):
    print(index, fruit)

# (0, 'apple')
# (1, 'banana')
# (2, 'cherry')
Python

enumerate (Python doc) 

4. Use the ‘zip’ function to iterate over multiple lists in parallel

In Python, zip is a built-in function that is used to combine two or more iterables into a single iterable. It aggregates elements from each of the iterables to form a tuple, and the tuples are returned as an iterator. The returned iterator stops when the shortest iterable is exhausted.

fruits = ['apple', 'banana', 'cherry']
prices = [0.5, 0.75, 1.0]
for fruit, price in zip(fruits, prices):
    print(fruit, price)

# ('apple', 0.5)
# ('banana', 0.75)
# ('cherry', 1.0)
Python

Note that zip returns an iterator, which can only be iterated over once. To use the result of zip multiple times, you need to convert it to a list or some other type that supports iteration. zip (Python doc)

5. Use ‘lambda’ functions for small, one-time use functions

squared = lambda x: x**2
print(squared(5)) # 25
Python

In this example, the lambda function takes a single argument x, and returns the square of x.

lambda functions are useful when you need a small, one-time-use function, and don’t want to define a separate named function using the def keyword. lambda (Python doc)

6. Use the ‘map’ function to apply a function to every item in a list

numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(lambda x: x**2, numbers))
print(squared_numbers) # [1, 4, 9, 16, 25]
Python

 map (Python doc)

7. Use the ‘filter’ function to filter items from a list

numbers = [1, 2, 3, 4, 5]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers) # [2, 4]
Python

8. Use the ‘reduce’ function from the ‘functools’ module to reduce a list to a single value

from functools import reduce
numbers = [1, 2, 3, 4, 5]
sum = reduce(lambda x, y: x + y, numbers)
print(sum) # 15
Python

9. Use the ‘os’ module to interact with the operating system

import os
print(os.getcwd()) # prints the current working directory
Python

10. Use the ‘os.path’ module for file path operations

import os.path
print(os.path.exists('file.txt')) # checks if file.txt exists
Python

11. Use the ‘glob’ module to find all files matching a pattern

import glob
print(glob.glob('*.txt')) # prints all .txt files in the current directory
Python

12. Use the ‘re’ module for regular expression operations

import re
text = 'the quick brown fox jumps over the lazy dog'
print(re.findall(r'\b\w{3,}\b', text)) # prints all words with 3 or more letters
Python

13. Use the ‘itertools’ module for more advanced iteration

import itertools
numbers = [1, 2, 3, 4, 5]
combinations = list(itertools.combinations(numbers, 3))
print(combinations) # [(1, 2, 3), (1, 2, 4), (1, 2, 5), ...]
Python

14. Use the ‘collections’ module for more advanced data structures

import collections
fruits = ['apple', 'banana', 'cherry', 'banana']
counter = collections.Counter(fruits)
print(counter) # Counter({'banana': 2, 'apple': 1, 'cherry': 1})
Python

15. Use the ‘datetime’ module for working with dates and times

import datetime
now = datetime.datetime.now()
print(now) # 2021-06-08 14:37:19.124736
Python

16. Use the ‘time’ module for working with timestamps

import time
timestamp = time.time()
print(timestamp) # 1622836239.124736
Python

17. Use the ‘json’ module for encoding and decoding JSON data

import json
data = {'name': 'John', 'age': 30, 'city': 'New York'}
json_data = json.dumps(data)
print(json_data) # {"name": "John", "age": 30, "city": "New York"}
Python

18. Use the ‘argparse’ module for parsing command-line arguments

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--name', help='Your name')
args = parser.parse_args()
print(args.name)
Python

19. Use the ‘logging’ module for logging messages

import logging
logging.basicConfig(level=logging.INFO)
logging.info('This is an informational message')
Python

logging (Python doc) 

20. Use the ‘unittest’ module for testing your code

import unittest
def add(a, b):
    return a + b
class TestAdd(unittest.TestCase):
    def test_add(self):
        result = add(1, 2)
        self.assertEqual(result, 3)
if __name__ == '__main__':
    unittest.main()
Python

In conclusion, these 20 tips and tricks are just the tip of the iceberg when it comes to coding in Python. By mastering these techniques, you’ll be well on your way to becoming a more proficient and productive Python programmer. Remember, the key to success in coding is to constantly learn and improve, so keep exploring new tools and techniques, and never stop pushing yourself to become better. Happy coding!

Leave a Reply