在两个嵌套for循环之间初始化一个变量。

问题描述 投票:0回答:1

我想把我的6行逻辑转换成单行。所以基本上我想减少向量的dimentionality。numpy.x.reshape 我想用简单的Python来实现,但这不是一个选项。

例如,我有

t = [[[0.304987, 0.284468], [0.928274, 0.966849]], [[0.712916, 0.721612], [0.104858, 0.123942]]]

我想把它转换为

[[0.304987, 0.284468, 0.928274, 0.966849], [0.712916, 0.721612, 0.104858, 0.123942]]

所以我这样做

X = []
for i in t:
 ii = []
 for exp in i:
   ii.extend(exp)
 X.append(ii)

我想把它做成单行。

python-3.x
1个回答
1
投票

并列迭代符被称为 "链",你可以在这样的理解中做到这一点。item for iterable in iterables for item in iterable. 所以,你可以用这样的方式来理解: :

>>> [[j for exp in i for j in exp] for i in t]
[[0.304987, 0.284468, 0.928274, 0.966849], [0.712916, 0.721612, 0.104858, 0.123942]]

参见 如何将列表中的列表制作成平面列表?

© www.soinside.com 2019 - 2024. All rights reserved.