2

我是 python 新手。如何像这样转换数组:

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

进入:

x=[0.3,0.07, 0.06]

? 提前致谢。

4

3 回答 3

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]
于 2013-04-29T16:23:24.517 回答
4

这是一个经典的用法itertools.chain.from_iterable

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

这个例子真正闪耀的地方是当你有一个包含任意长度迭代的迭代时:

[[0],[12,15],[32,24,101],[42]]
于 2013-04-29T16:23:12.793 回答
0
new_x = []
for elem in x:
    new_x.extend(elem)

这适用于每个子列表的任意数量的元素。

于 2013-04-29T16:23:25.390 回答