Ash*_*pai 2 python list-comprehension
我对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])
Run Code Online (Sandbox Code Playgroud)
我尝试过:
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]
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
@ 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]
Run Code Online (Sandbox Code Playgroud)
嵌套列表推导可能有点棘手.您需要将三元组添加到列表中.这意味着理解的第一部分应该是(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]
Run Code Online (Sandbox Code Playgroud)
然后你需要将list作为条件,以i + j + k不等于n为条件.结果是if条件.不应该有任何其他[或]介于两者之间.