Есть ли простой способ в python (используя itertools или иначе) для преобразования вложенного итерабельного f
в соответствующий список или кортеж? Я хотел бы сохранить f
, поэтому я могу перебирать его несколько раз, а это значит, что если некоторые вложенные элементы f
являются генераторами, у меня будут проблемы.Преобразование вложенных итераций в список
Я приведу пример ввода/вывода.
>>> g = iter(range(2))
>>> my_input = [1, [2, 3], ((4), 5), [6, g]]
>>> magical_function(my_input)
[1, [2, 3], [[4], 5], [6, [0, 1]]]
Было бы хорошо, если бы результат состоял из кортежей. Проблема в том, что итерация по g
«потребляет» ее, поэтому ее нельзя использовать снова.
Что вы подразумеваете под «соответствующим списком» вложенного итерабельного? Вы хотите сгладить итерабельность? Если это так, вы хотите одноуровневое выравнивание, выравнивание n-уровня или рекурсивное сглаживание? – user2357112
Я не хочу сглаживания. Под «соответствующим списком» я подразумеваю, что хочу сохранить вложенную структуру '' f''. –
Можете ли вы представить пример кода, что вы пытались и что вы хотите получить от этого? – Nilesh