Uczę się Pythona, ale pochodzę z tła Java i Java, możesz ustawić wartość, którą iterator zwiększa lub zmniejsza w każdym przebiegu pętli. Na przykład możesz powiedzieć for(int i = 0; i < 10; i = i + 2)
tak, że iterator wzrasta o dwa za każdym razem.
Z tego, co do tej pory widziałem w tutorialach w Pythonie,pętla for jest niezmienna i przechodzi przez każdą liczbę całkowitą od wartości początkowej do wartości końcowej, zwiększając się o jeden za każdym razem. Czy istnieje sposób na manipulowanie pętlą Python for, aby ustawić własną wartość zwiększania / zmniejszania dla iteratora?
Odpowiedzi:
3 dla odpowiedzi № 1Możesz użyć poniższych, aby osiągnąć to samo w pythonie:
>>> range(1, 10, 2)
[1, 3, 5, 7, 9]
Będziesz zatem kodować
for i in range(0, 10, 2):
# do_stuff()
1 dla odpowiedzi nr 2
Kiedy używasz for
Pętla do iteracji nad indeksem w Pythonie, zazwyczaj konstruujesz a range
obiekt.
for i in range(10):
print(i)
# 0, 1, ..., 9
range
ma konstruktor, który przyjmuje trzy argumenty: start, stop i step.
for i in range(0, 10, 2):
print(i)
# 0, 2, ..., 8
Ale zwykle po prostu iterujesz przedmioty w obiektach, a nie indeksy.
lst = [0, 1, 2, 3]
for element in lst:
print(element)
# 0, 1, 2, 3
Jednakże, jeśli twój obiekt obsługuje cięcie (jak robią listy), łatwo jest zdobyć każdego innego członka.
lst = [0, 1, 2, 3]
for element in lst[::2]:
print(element)
# 0, 2
"Krojenie listy w Pythonie", jeśli chcesz uzyskać więcej informacji na temat tej składni.