Skip over a value in the range function in python

前端 未结 7 989
我在风中等你
我在风中等你 2020-12-04 17:28

What is the pythonic way of looping through a range of numbers and skipping over one value? For example, the range is from 0 to 100 and I would like to skip 50.

Edi

7条回答
  •  一生所求
    2020-12-04 18:08

    In addition to the Python 2 approach here are the equivalents for Python 3:

    # Create a range that does not contain 50
    for i in [x for x in range(100) if x != 50]:
        print(i)
    
    # Create 2 ranges [0,49] and [51, 100]
    from itertools import chain
    concatenated = chain(range(50), range(51, 100))
    for i in concatenated:
        print(i)
    
    # Create a iterator and skip 50
    xr = iter(range(100))
    for i in xr:
        print(i)
        if i == 49:
            next(xr)
    
    # Simply continue in the loop if the number is 50
    for i in range(100):
        if i == 50:
            continue
        print(i)
    

    Ranges are lists in Python 2 and iterators in Python 3.

提交回复
热议问题