【问题标题】:How to compare a value to a list of pairs in a list comprehension?如何将值与列表理解中的对列表进行比较?
【发布时间】:2022-01-21 10:40:35
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • True if &lt;condition&gt; else False 与刚才的条件相同。

标签: python list-comprehension boolean-expression


【解决方案1】:

是的,您可以在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)

输出:

[False, False, False, True, True]

【讨论】:

    猜你喜欢
    • 2021-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多