Zsip etc
zip pairs
letters = ['a', 'b', 'c']
numbers = [0, 1, 2]
for l, n in zip(letters, numbers):
print(f'Letter: {l}')
print(f'Number: {n}')
#unzip
pairs = [(1, 'a'), (2, 'b')]
numbers, letters = zip(*pairs)
sorting in parallel
letters = ['b', 'a', 'd']
numbers = [2, 4, 3]
data = list(zip(letters, numbers))
data.sort() #sort by letters
#or
data = sorted(zip(letters, numbers)) #sort by letters
zip_longest
from itertools import zip_longest
l1 = [1, 2, 3]
l2 = [1, 2]
lt = list(zip_longest(l1, l2, fillvalue=None))
print(lt) #[(1, 1), (2, 2), (3, None)]