2017-03-11 13 views

答えて

5

ネストされたリストの内包表記は少し注意が必要です。あなたのリストに追加するには、3つのタプルが必要です。だから、意味理解の最初の部分は、私はJ + K nと等しくないを+すると、あなたが条件付きであることをリストすることAPPENDを必要とする(i、j、k)は、

[ (i,j,k) for i in range(x+1) for j in range(y+1) for k in range(z+1) if i+j+k != n] 

でなければなりません。 if条件は最後に来る。その間に他の[または]があってはなりません。

+0

それは動作しますが、感謝:特にitertools.product()はあなたに、ネストされたforループの同等のものを与えるだろう。 –

+0

助けてくれてうれしい – e4c5

8

@ e4c5はリテラル置換を提供しますが、itertoolsを使用して理解を簡略化することができます。

import itertools as it 
[a for a in it.product(range(x+1), range(y+1), range(z+1)) if sum(a) != n] 
関連する問題