You will be given an array that contains two strings. Your job is to create a function that will take those two strings and transpose them, so that the strings go from top to bottom instead of left to right.
A few things to note:

1. There should be one space in between the two characters
2. You don't have to modify the case (i.e. no need to change to upper or lower)
3. If one string is longer than the other, there should be a space where the character would be

Source: codewars | Difficulty: EASY
Tags: String algorithms

Fundamentals

Data structures

Starter code: def transpose_two_strings(arr):
	

Solutions:
import itertools

def transpose_two_strings(arr):
	return '\n'.join((' '.join(elt) for elt in itertools.zip_longest(arr[0], arr[1], fillvalue=' ')))


from itertools import *
transpose_two_strings = lambda a: '\n'.join(map(' '.join, zip_longest(*a, fillvalue=' ')))


def transpose_two_strings(arr):
	p = arr[:]
	if len(p[0]) > len(p[1]):
		p[1] = p[1].ljust(len(p[0]))
	elif len(p[0]) < len(p[1]):
		p[0] = p[0].ljust(len(p[1]))
	return '\n'.join([f'{i} {j}' for (i, j) in zip(*p)])


from itertools import zip_longest as zipL

def transpose_two_strings(arr):
	return '\n'.join([' '.join(s) for s in zipL(*arr, fillvalue=' ')])


from itertools import zip_longest

def transpose_two_strings(lst):
	return '\n'.join((f'{a} {b}' for (a, b) in zip_longest(*lst, fillvalue=' ')))


from itertools import zip_longest

def transpose_two_strings(arr):
	return '\n'.join(map(' '.join, zip_longest(*arr, fillvalue=' ')))


def transpose_two_strings(arr):
	mw = max([len(x) for x in arr])
	return '\n'.join([' '.join([a, b]) for (a, b) in zip(arr[0].ljust(mw), arr[1].ljust(mw))])


from itertools import zip_longest

def transpose_two_strings(arr):
	return '\n'.join((' '.join(pair) for pair in zip_longest(*arr, fillvalue=' ')))