Вы можете определить метод, который группирует для вас элементы в списке:
def group_by(iterable, n = 2):
if len(iterable)%n != 0: raise Exception("Error: uneven grouping")
# if n < 2: n = 1
i, size = 0, len(iterable)
while i < size-n+1:
yield iterable[i:i+n]
i += n
Так, например, если ваш список:
words = ["a", "b", "c", "d"]
group_by(words, 2) #=> [['a', 'b'], ['c', 'd']]
Или вы можете сгруппировать по 3:
words = ["a", "b", "c", "d", "e", "f"]
cons = group_by(words, 3) #=> [['a', 'b', 'c'], ['d', 'e', 'f']]
Тогда вы можете использовать таким образом:
res = [ "".join(pair) for pair in group_by(words, 2) ] # maybe you want to add "\n" to the joined string
#=> ['ab', 'cd', 'ef']
Метод выдает ошибку, если количество элементов не может быть равномерно сгруппировано:
words = ["a", "b", "c", "d", "e"]
cons = group_by(words, 2) #=> Exception: Error: uneven grouping