2013-04-10 116 views
2

我如何去製作列表一樣嵌套列表列出

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

要兩個列表如下所示:

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

另外,我怎麼會去這樣做,如果我不」知道列表中有多少個列表?

+4

到底是什麼'My_list =的意義[ '項目1', 'ITEM2'] [ '鯊魚', '狗', '貓']'?這不是一個有效的表達。 – NPE 2013-04-10 06:54:33

+0

如果你想'My_list = [ '項目1', 'ITEM2', '鯊魚', '狗', '貓']',那麼答案是:'總和(My_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 2013-04-10 06:56:21

+0

對不起,修改了這個問題是一個有點困惑的藝術我在問什麼大聲笑。 – VEDYL 2013-04-10 06:58:47

回答

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 2013-04-10 21:42:53

+0

@VEDYL不,這是僞代碼。我想說的是你*不能*在運行時創建變量。你可以使用globals()['variable_name'] = value'創建全局變量,但是這個*不適用於函數內部的變量。 – Bakuriu 2013-04-11 05:34:08

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

乾杯,只是好奇,如果我不知道名單是多久,我會怎麼做。所以說,名單[「項目1」,「項目2」],[「鯊魚」,「狗」,「貓」] [「添加」,「傻」,「黑話」,「想」],但我們沒不知道列表裏面有3個列表 – VEDYL 2013-04-10 08:24:56

+0

你不能有未知數量的局部變量 - 在這種情況下,你使用列表(你已經擁有) – 2013-04-11 01:04:50

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']