代码之家  ›  专栏  ›  技术社区  ›  Mykola Kharechko

python范围在其他范围中出现

  •  3
  • Mykola Kharechko  · 技术社区  · 14 年前

    >>> xrange(4, 10) in xrange(3, 20)
    TRUE
    
    4 回复  |  直到 14 年前
        1
  •  5
  •   tzaman    14 年前

    (min1 >= min2) and (max1 <= max2)

    min1, max1 = 4, 10 min2, max2 = 3, 20

    注意:您想要比较端点 没有 实际制作/评估范围,否则效率会非常低。

    编辑: min2 <= min1 <= max1 <= max2

        2
  •  4
  •   Scott Stafford    14 年前

    如果您希望一个集合包含在另一个集合中,请尝试:

    >>> set(xrange(4, 10)).issubset(set(range(3,20))
    

    如果您希望比较端点,因为您总是使用范围,那么您可以只比较@zoli2k这样的端点。

    [编辑]已请求编辑。

        3
  •  0
  •   zoli2k    14 年前
     >>>min(xrange(4, 10)) > min(range(3, 20)) and max(xrange(4, 10)) < max(range(3, 20))
     True
    
        4
  •  0
  •   Jerub    14 年前

    >>> a = range(10)
    >>> b = range(5,15)
    >>> c = range(15,25)
    >>> any(x in a for x in b)
    True
    >>> any(x in a for x in c)
    False
    

    这是稍微低效的,如果有非常大的(100+元素)的范围来检查,它是更好的类型 a “设置”而不是列表。即。:

    >>> a = set(range(10))
    

    集合没有顺序,但是 in