2009-11-04 1 views
1

У меня есть 2-мерный список, созданный во время выполнения (количество записей в любом измерении неизвестно). Например:Динамически разложить список на переменные в Python

long_list = [ [2, 3, 6], [3, 7, 9] ] 

Я хочу итерацию через него, получая запись-ю из каждого списка внутри long_list:

for entry in long_list.iter(): 
    #entry will be [2, 3] then [3, 7] then [6, 9] 

Я знаю, что метод Пайтона itertools.izip_longest() делает это. Кроме того, для каждого списка требуется другая переменная.

itertools.izip_longest(var1, var2, var3 ...) 

Итак, как же я разделил свою long_list в другую переменную для каждого списка, а затем вызвать izip_longest() со всеми теми переменной во время выполнения?

ответ

4
>>> long_list = [ [2, 3, 6], [3, 7, 9] ] 
>>> import itertools 
>>> for i in itertools.izip_longest(*long_list):  # called zip_longest in py3k 
    print(i) 


(2, 3) 
(3, 7) 
(6, 9) 

В принципе, здесь вам необходимо использовать функцию распаковки. Он будет работать аналогично для zip.

+0

Возможно, вам следует объяснить, что * распаковывает список. – job