Quel est le moyen utilisé par Pythonic pour parcourir une plage de nombres et sauter une valeur? Par exemple, la plage va de 0 à 100 et je voudrais sauter 50.
Edit: Voici le code que j'utilise
for i in range(0, len(list)):
x= listRow(list, i)
for j in range (#0 to len(list) not including x#)
...
Vous pouvez utiliser n'importe lequel de ceux-ci:
# 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
Cela dépend de ce que vous voulez faire. Par exemple, vous pourriez utiliser des conditions telles que celle-ci dans vos compréhensions:
# 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]
En plus de l’approche Python 2, voici les équivalents 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)
Les plages sont des listes dans Python 2 et des itérateurs dans Python 3.