If it won't be simple, it simply won't be. [Hire me, source code] by Miki Tebeka, CEO, 353Solutions

Friday, November 25, 2016

Using built-in slice for indexing

At one place I consult I saw something like the following code:
def fn1(items, use_tail=False):
if use_tail:
key = items[-2:]
else:
key = items[0]
print(key)
items = [1, 2, 3, 4, 5]
fn1(items)
fn1(items, True)
view raw slice-1.py hosted with ❤ by GitHub
This is good and valid Python code, however we can use the slice built-in slice to do the same job.

def fn2(items, use_tail=False):
idx = slice(-2, None) if use_tail else 0
key = items[idx]
print(key)
items = [1, 2, 3, 4, 5]
fn2(items)
fn2(items, True)
view raw slice-2.py hosted with ❤ by GitHub
Also when you're writing your own __getitem__ consider that key might be a slice object.

Saturday, November 12, 2016

Blog Archive