gpt4 book ai didi

Python - 向生成器添加 bool 条件

转载 作者:太空狗 更新时间:2023-10-30 02:12:20 24 4
gpt4 key购买 nike

我正在生成元组使用:

Z = 1
W = 5
[(x,y) for x in range(Z-2,Z+2)for y in range(W-2,W+2)]

我想将一些 bool 条件合并到这个生成器中,例如:

  1. 不要包含 x 等于 y 的元组。
  2. 不要包含 x 为非正数的元组。

这个任务有专门的语法吗?像这样的东西:

[(x,y) for x in range(Z-2,Z+2)for y in range(W-2,W+2) where (x!=y) and (x>0)]

谢谢!

最佳答案

我将非正数解释为包括 0,所以条件最终是

  1. x != y
  2. x >= 0

所以理解变成:

>>> [(x,y) for x in range(Z-2,Z+2) for y in range(W-2,W+2) if x != y and x >= 0]
[(0, 3), (0, 4), (0, 5), (0, 6), (1, 3), (1, 4), (1, 5), (1, 6), (2, 3), (2, 4), (2, 5), (2, 6)]

另一个例子:选择 0 到 99(含)之间的数字,其中 2 和 3 的除法余数都等于 0。

>>> [ i for i in range(100) if (i%2==0) and (i%3==0)]
[0, 6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 66, 72, 78, 84, 90, 96]

通常你可以将语法描述为

[ result for variables in iterable if condition ]

关于Python - 向生成器添加 bool 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16632281/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com