2013-04-29 54 views
2

我是新來的python。如何可以改變一個數組是這樣的:變換陣列列表

x=[[0.3], [0.07], [0.06]] 

到:

x=[0.3,0.07, 0.06] 

? 在此先感謝。

回答

5

下面的列表理解可能是有用的。

>>> x=[[0.3], [0.07], [0.06]] 
>>> y = [a for [a] in x] 
>>> y 
[0.3, 0.07, 0.06] 

考慮到內部值的類型也是list

cdhowie給出的相似但更易讀的代碼如下。

>>> x=[[0.3], [0.07], [0.06]] 
>>> y = [a[0] for a in x] 
>>> y 
[0.3, 0.07, 0.06] 
+2

或'y = [a [0] for a x]',這是等價的,假設輸入元素是列表而不是其他可索引對象。 – cdhowie 2013-04-29 16:24:16

+0

是的。這也是一個等價的方法。你介意我是否給你加標籤並在答案中加入?可能對其他人有幫助。 – 2013-04-29 16:25:22

+0

完全沒有辦法。 – cdhowie 2013-04-29 16:25:48

4

這是一個典型的利用itertools.chain.from_iterable

from itertools import chain 
print list(chain.from_iterable(x)) 

如果這個例子中真正的亮點是,當你有一個可迭代的任意長度iterables裏面:

[[0],[12,15],[32,24,101],[42]] 
0
new_x = [] 
for elem in x: 
    new_x.extend(elem) 

這適用於任意數量的每子表的元素。

+0

Tnx F3AR3DLEGEND,它的作品呢! – 2013-04-29 16:48:38