2013-04-10 2 views
2

Как бы идти о создании списка какВложенный списка в список

My_list = [['Item1', 'item2'], ['shark', 'dog', 'cat']] 

Для двух списков, как следующее:

My_list = ['Item1', 'item2'] 
My_list2 = ['shark', 'dog', 'cat'] 

Кроме того, как бы я идти об этом, если я Жду» Знаете, сколько списков было в списке?

+4

Что именно это значение 'my_list = [ 'ITEM1', 'item2'] [ 'акула', 'собака', 'кошка'] '? Это недействительное выражение. – NPE

+0

Если вы хотите 'My_list = ['Item1', 'item2', 'shark', 'dog', 'cat']', тогда ответ будет следующим: 'sum (My_list, [])' или 'list (itertools.chain .from_iterable (my_list)) '. См. Также [это] (http://stackoverflow.com/questions/15366053/flatten-a-nested-list-of-variable-sized-sublists-into-a-scipy-array) родственный вопрос. – Bakuriu

+0

Извините, пересмотренный вопрос был немного запутанным искусством, что я просил LOL. – VEDYL

ответ

1

Вы можете использовать последовательность распаковки:

My_list, My_list2 = My_list 

Если My_list может иметь больше элементов, и вы хотите сделать что-то вроде:

for elem in My_list: 
    create_variable('My_listn', elem) 

Это не можно в общем случае. Python не позволяет создавать локали во время выполнения (по крайней мере, не надежно).

+0

Нужно ли импортировать функцию create_variable? Он говорит, что глобальное имя «create_variable» не определено – VEDYL

+0

@ VEDYL Нет, это псевдокод. Я хотел сказать, что вы * не можете * создавать переменные во время выполнения. Вы можете создавать глобальные переменные с помощью 'globals() ['variable_name'] = value', но это * не * работает для переменных внутри функций. – Bakuriu

1

Предполагая My_list действительно предназначен выглядеть следующим образом:

My_list = [['Item1', 'item2'], ['shark', 'dog', 'cat']] 

А также, что вы действительно хотите, что вы просите, вы могли бы сделать что-то вроде:

My_list2 = My_list[1] 
My_list = My_List[0] 

Или же, как и другие предлагают, вы можете использовать список распаковки:

My_list, My_list2 = My_list 
1
>>> My_list = [['Item1', 'item2'], ['shark', 'dog', 'cat']] 
>>> l1, l2 = My_list 
>>> l1 
['Item1', 'item2'] 
>>> l2 
['shark', 'dog', 'cat'] 
1
My_list, My_list2 = My_list[0], My_list[1] 
+0

Приветствия, просто любопытно, как бы я это сделал, если бы не знал, сколько времени осталось в списке. Поэтому скажем, что этот список был [['Item1', 'item2'], ['shark', 'dog', 'cat'] ['added', 'dally', 'can not', 'think']], но мы didn Не знаю, есть ли 3 списка внутри списка – VEDYL

+0

, у вас не может быть неизвестного количества локальных переменных - в этом случае вы используете список (который у вас уже есть) –

0
>>> My_list = ['Item1', 'item2'],['shark', 'dog', 'cat'] 
>>> My_list 
(['Item1', 'item2'], ['shark', 'dog', 'cat']) 
>>> len(My_list) 
2 

>>> My_list[0] 
['Item1', 'item2'] 
>>> My_list[1] 
['shark', 'dog', 'cat'] 

>>> My_list[2] 
Traceback (most recent call last): 
    File "<pyshell#34>", line 1, in <module> 
    My_list[2] 
IndexError: tuple index out of range 

>>> My_list, My_list2 = My_list 
>>> My_list 
['Item1', 'item2'] 
>>> My_list2 
['shark', 'dog', 'cat'] 
Смежные вопросы