Idiomatic Python

Here are a few things you can watch out for to improve how obvious and fast your code is. Oftentimes people coming from other programming language don’t take advantage of the python way.

Looping

colours = ['red', 'green', 'blue', 'orange']

for colour in colours:
    print(colour)

# Not

for i in range(len(colours)):
    print(colours[i])

Reversing a loop

for colour in reversed(colours):
    print(colour)

# Not

for i in  range(len(colours) -1, -1, -1):
    print(colours[i])

USing Indices

Use enumerate

for i, colour in enumerate(colours):
    print(i, '-->', colour)

Looping over 2 collections

Use zip

colours = ['red', 'green', 'blue', 'orange']
names = ['raymond', 'rachel', 'matthew']

for name, colour in zip(names, colours):
    print(name, colour)

Problem with zip is they use alot of memory so can use izip instead