python - 如何在列表理解中将值与对列表进行比较?

标签 python list-comprehension boolean-expression

我需要创建一个 n 长的列表,其中每个项目都是 bool 值。仅当x在一对或多对整数的范围内时,该项才为True。比如我现在的代码如下:

l = [True if a < x < b or c < x < d else False for x in range(n)]

我的问题是对的数量会有所不同,因此一个实例中可能只存在 ab,但 e 和 < em>f 也可能存在于另一个中。如果我要像这样在元组列表中构造我的坐标对......

coordinates = [(a,b), (c,d), ...]

...有没有办法仍然将其作为列表理解来执行?如果没有,最Pythonic的方法是什么?

最佳答案

是的,您可以在 any 中使用生成器表达式来完成此操作:

coordinates = [(2, 4), (3, 8)]
n = 5

l = [any(a < x < b for (a, b) in coordinates) for x in range(n)]

print(l)

Output:

[False, False, False, True, True]

关于python - 如何在列表理解中将值与对列表进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70411221/

相关文章:

python - 将 sys.stdout 重定向到 python 日志记录

language-agnostic - 为什么以析取范式表达代码很重要?

r - 在 R 编程中,& 与 && 和 | 之间有什么区别?与 ||

python - 如何杀死子进程

Python CSV : Grab all values in row with conditions for time values

python - virtualenvwrapper -> 更新 python 二进制文件

Python3 帮助确定动态创建列表的大多数 pythonic 方法

python - 生成器在列表理解中过早结束

python - 列表理解导致 "name ... is not defined"错误

python - 检查 False 的正确方法是什么?