Как разделить строку на столбики? Python

У меня есть, допустим, такая строка:

s='''
# #   #
###  # # 
# #   #
'''

Как сделать, чтобы из неё создался список по столбикам, то есть, примерно такой:

s2=['''
#
#
#
''',
'''

#

''',
...
]

P. S. Пустые столбики тоже надо сделать


Ответы (2 шт):

Автор решения: GrAnd

Хм... Это что ли?

from itertools import zip_longest

stolbiki = list(map("\n".join, zip_longest(*s.split("\n"), fillvalue="")))
['\n#\n#\n#\n',
 '\n \n#\n \n',
 '\n#\n#\n#\n',
 '\n \n \n \n',
 '\n \n \n \n',
 '\n \n#\n \n',
 '\n#\n \n#\n',
 '\n\n#\n\n',
 '\n\n \n\n']
→ Ссылка
Автор решения: виктор чернов
s = s[1:]  # убираю ненужный снос строки вначале
arr = s.split("\n")  # делю на строки
length = len(max(arr))  # длина максимально длинной строки
s2 = ["" for i in range(length)]  # s2
for i in range(length):
    s2[i] = "\n" + "\n".join([(arr[j][i] if len(arr[j]) > i else '') for j in range(3)]) + "\n"
    # j - итератор по строкам
    # если строка по индексу j достаточно длинная, беру из неё символ. Иначе пустой символ.


['\n#\n#\n#\n',
 '\n \n#\n \n',
 '\n#\n#\n#\n',
 '\n \n \n \n',
 '\n \n \n \n',
 '\n \n#\n \n',
 '\n#\n \n#\n',
 '\n\n#\n\n',
 '\n\n \n\n']

Этот код работает с примерами вроде вашего. Где вначале стоит снос строки, а колонки разной длины.

→ Ссылка