1

基本的にこれであるリスト内包表記がある場合:

result = [function(i,j,k,l) for i in range(3) for j in range(3)
    for k in range(3) for l in range(3)]

それは私が望むことをしますが、見栄えが悪いです。私はPythonにはかなり慣れていませんが、Pythonには何らかの組み込み機能があり、4文字のijklのすべての可能な組み合わせをそれほど面倒な方法で合計できないようです。私の直感は正しいですか、それとも長くて醜い線を見つめているのですか?

4

1 に答える 1

0

誰もこれの重複を思いついたので、これが私の答えです、記録のためだけです(ただし、DSMは彼も使用したコメントですでに良い答えを出しておりitertools.product、それが解決策の要です):

result = itertools.starmap(function, itertools.product(range(3), repeat=4))

starmap(Python 3 の のようにmap) イテレータを返すので、この式をリストにラップすることができます。その時点で、DSM の回答はおそらくさらに読みやすくなります。

于 2013-08-31T21:58:51.790 に答える