Omita un valor en la función de rango en python

¿Cuál es la forma pythonica de recorrer un rango de números y omitir un valor? Por ejemplo, el rango es de 0 a 100 y me gustaría omitir 50.

Edit: Aquí está el código que estoy usando

for i in range(0, len(list)): x= listRow(list, i) for j in range (#0 to len(list) not including x#) ... 

Puedes usar cualquiera de estos:

 # Create a range that does not contain 50 for i in [x for x in xrange(100) if x != 50]: print i # Create 2 ranges [0,49] and [51, 100] (Python 2) for i in range(50) + range(51, 100): print i # Create a iterator and skip 50 xr = iter(xrange(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 
 for i in range(100): if i == 50: continue dosomething 

Depende de lo que quieras hacer. Por ejemplo, podría incluir algunos condicionales como este en sus comprensiones:

 # get the squares of each number from 1 to 9, excluding 2 myList = [i**2 for i in range(10) if i != 2] print(myList) # --> [0, 1, 9, 16, 25, 36, 49, 64, 81] 

Además del enfoque de Python 2, aquí están los equivalentes de 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) 

Los rangos son listas en Python 2 e iteradores en Python 3.

lo que podría hacer, es poner una statement if alrededor de todo dentro del bucle que desea mantener alejado de los 50. por ejemplo,

 for i in range(0, len(list)): if i != 50: x= listRow(list, i) for j in range (#0 to len(list) not including x#)