如何改进这个List Comprehensions?

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

我想知道我可以改进我的python代码,使其写得更短。我只使用标准库和numpy库。下面是代码。

import numpy as np
x=1
y=2
np.array([(a,b,c) for a in [x,y] for b in [x,y] for c in [x,y]])

正如你所看到的,这个程序产生了所有三个元素的组合,在这个程序中有一个类似的部分,如 for a in [x, y] 并且可以写得更短吗?

[编辑]

我想只使用标准库和numpy库。

输入应该是任何值,比如x=3,y=8。

python numpy list-comprehension
1个回答
4
投票

使用 itertools.product:

from itertools import product

# ...
np.array(list(product((x, y), repeat=3)))

0
投票

根据类似问题 Junkrat 建议,我想出了这个主意。但这并不简单)。

import numpy as np
x=1
y=2
a = np.array(np.meshgrid([x, y], [x, y], [x, y]))   
a = np.rollaxis(a, 0, 4)         
a = a.reshape((2*2*2, 3))  
© www.soinside.com 2019 - 2024. All rights reserved.