3

次のコードがあります

A = [(X(x), Y(y), Z(z)) for x in range(N) for y in range(N) for z in range(N)]

それは私が望むことをします-私の関数X、Y、Zに従ってデカルト座標を表すタプルのリストを生成します-しかし、それはあまりきれいではありません。私は試した

A = [(X(x), Y(y), Z(z)) for x, y, z in range(N)]

しかし、それはうまくいきませんでした。これを行うためのよりエレガントでpythonicな方法はありますか?

4

3 に答える 3

-1

あなたはこれを行うことができます:

import itertools

res = [X(each[0]), Y(each[1]), Z(each[2]) for each in itertools.combinations(N, 3)]

これにより、すべてのユニークな組み合わせが得られます。詳細については、こちらをご覧ください。

コーディングを続けてください:)

于 2013-04-05T12:08:46.007 に答える
-2

x、y、z は同じ値を持っているので、次のようにすることができます。

A = [(X(x), Y(x), Z(x)) for x, in range(N)]

マップ関数を使用することもできます:

f = lambda x : (X(x), Y(x), Z(x))
map(f, range(N))

幸運を

于 2013-04-05T11:27:38.920 に答える