我对python很新。
l = []
for i in range(x+1):
for j in range(y+1):
for k in range(z+1):
if i+k+j!=n:
l.append([i,j,k])
我试过了:
l = [[[i for i in range(x+1)] for j in range(y+1)] for k in range(z+1) if i+j+k != n]
但它不起作用。
答案 0 :(得分:8)
@ e4c5提供了文字替换,但您可以使用itertools
来简化理解。特别是itertools.product()
会给你相当于嵌套的for
循环:
import itertools as it
[a for a in it.product(range(x+1), range(y+1), range(z+1)) if sum(a) != n]
答案 1 :(得分:5)
嵌套列表推导可能有点棘手。您需要将三元组添加到列表中。这意味着理解的第一部分应该是(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]
然后你需要将list作为条件,以i + j + k不等于n为条件。结果是if条件。中间不应该有任何其他[
或]
。