# What is bool?

## Implicit boolean value of a empty list

``````a = []
if not a:
print('a is empty')

``````

# List

## [] slicing notation

### Slicing with a[start:end]

it will return an list of elem from a[start] till a[end – 1]. If start > end then return an empty string. Very good to know for boundary checks. Also works for string. We can omit both start and end and that will return a copy of the whole array.

#### To make a copy of 2d array

``````copy_a = [row[:] for row in origin_a]
``````

### Negative index

start or and can be negative. It will count from the end. a[-1] is the last element a[-2:] will return the last two element. a[:-2] everything except the last two

### Negative steps:

a[::-1] # all items in the array, reversed a[1::-1] # the first two items, reversed a[:-3:-1] # the last two items, reversed a[-3::-1] # everything except the last two items, reversed

a[1::-1] means start at index 1 and go till 0, where 0 is right before the end. a[:-3:-1] means we will start from 0 and go back till right before the third last(so the last two reversed).

[ : : ]

These two links are really helpful Stackoverflow Yeah we don’t code anymore. Just move codes around

### Copy list

List is mutable so through pass by assignment, a = b will just pass b’s handle to a. If we want to copy, we can use a = b[:] where b[:] will return a copy of the whole list

# String

## strip all chars

### Using join

First we need to find all possible punctuation:

``````import string
exclude = set(string.punctuation)
``````

set will create element for each and every char in string.punctuation.

Then we will remake the given string using join.

``````new_s = ''.join(c for c in old_str if c not in exclude)
``````

We will join an empty string with all char in the old string that’s not in exlude (aka not punctuation)

We can remove whitespace as well by adding and c != ‘ ‘.

### Using translate

``````import string
s = "string. With. Punctuation?" # Sample string
out = s.translate(string.maketrans("",""), string.punctuation)
``````

This use translate and will perform a row string operation in C. Not gonna beat it in spead.

## Reverse a string (array)

``````s = s[::-1]
``````