Если у меня есть последовательность последовательностей (возможно, список кортежей), я могу использовать itertools.chain(), чтобы сгладить ее. Но иногда мне кажется, что я скорее напишу это как понимание. Я просто не могу понять, как это сделать. Здесь очень истолкованный случай:
Скажем, я хочу поменять элементы каждой пары в последовательности. Я использую строку как последовательность здесь:
>>> from itertools import chain
>>> seq = '012345'
>>> swapped_pairs = zip(seq[1::2], seq[::2])
>>> swapped_pairs
[('1', '0'), ('3', '2'), ('5', '4')]
>>> "".join(chain(*swapped_pairs))
'103254'
Я использую zip на четном и нечетном участках последовательности для замены пар. Но в итоге я получаю список кортежей, которые теперь нужно сгладить. Поэтому я использую chain(). Есть ли способ выразить это с пониманием вместо этого?
Если вы хотите опубликовать собственное решение основной проблемы обмена элементами пары, продолжайте, я буду голосовать за то, что учит меня чему-то новому. Но я только отмечу как принятый ответ, который нацелен на мой вопрос, даже если ответ "Нет, вы не можете".