【问题标题】:Check if a value is withing a list of ranges in Python? [duplicate]检查一个值是否在 Python 的范围列表中? [复制]
【发布时间】:2021-04-02 23:03:30
【问题描述】:

我在这里有两个范围列表:

我正在尝试检查某个值是否在某个范围的任何范围内,如果是,则返回索引。有什么方法可以在不进行列表理解的情况下进行检查?

>>> a=range(1,4)
>>> b=range(4,7)
>>> c=range(7,10)
>>> d=[a,b,c]
>>> d
[range(1, 4), range(4, 7), range(7, 10)]
>>> 3 in d[0]
True

【问题讨论】:

  • any(var in subrange for subrange in d) 进行一般检查。至于索引,你需要遍历那些。
  • 有很多方法可以做到这一点。 d=list(a)+list(b)+list(c) 将它们全部组合到一个列表中。

标签: python list list-comprehension


【解决方案1】:
def get_range_ind(num, min_val, max_val):
    if num in range(min_val, max_val+1):
        return num - min_val + 1

get_range_ind(6, 3, 9)

>>> 4

【讨论】:

  • 欢迎堆栈溢出。在回答问题时,至少对您的代码提供一些评论总是有帮助的,即您为什么做出这些选择? Fir示例'在我的解决方案中,我使用range函数生成了一个从min_valmax_val的所有整数列表,并检查该数字是否在列表中,这比xxx更高效,因为yyy`跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-22
  • 2018-05-12
  • 1970-01-01
相关资源
最近更新 更多