strongly related to numpy accelerations

You have n lists of same length: {python}l1 = [0,1,2,3] and {python} l2 = [10,11,12,13] etc.... Please create a list of tuples, where the first tuple has each first element, the second every second etc.
Note, that the lists might have different types.
?

l1 = [0,1,2,3]
l2 = [10,11,12,13]
l3 = [20,21,22,23]

zipped_list = list(zip(l1,l2,l3))
# zipped object: [(0, 10, 20), (1, 11, 21), (2, 12, 22), (3, 13, 23)]

Please iterate through a zipped object.
?

l1 = [0,1,2,3]
l2 = [10,11,12,13]
l3 = [20,21,22,23]

zipped_list = zip(l1,l2,l3)

for tuple in zipped_list:
    print(tuple)

Please reverse the zipping process.
?
{python}unzipped = zip(*zipped)

You have a numpy array of arrays: {python}x = np.array([[1,2,3], [4,5,6], ...]). Please make it a singular list with all elements: {python}[1,2,3,4,5,6,...].
?
{python}x.ravel()