Цикл назад с помощью индексов в Python?

Решил, благодаря моему коллеге ...

Причина была в том, что в моем случае поле row.SitePrefixLength изначально было установлено на 64, что является недопустимым значением, в соответствии с MIB_IPINTERFACE_ROW doc page :

[ 1114] Для адреса IPv4 любое значение, большее 32, является недопустимым.

blockquote>

Как только я вставил следующую строку перед вызовом SetIpInterfaceEntry , все пошло хорошо:

row.SitePrefixLength = 0;

Несмотря на то, что это решило проблему, осталось еще мало открытых вопросов :

  1. Как получилось, что текущее текущее значение недопустимо?
  2. Какое значение указать, если вы встретите там недопустимое значение? Похоже, что установка его на 0 является ответом, но я не уверен в этом.

Но, во-первых, я, вероятно, должен выяснить, какова цель SitePrefixLength field / param. :)

ОБНОВЛЕНИЕ : Я только что нашел ответ на свой второй оставшийся вопрос - он был на одной и той же странице документа все время (позор мне не все читает). Таким образом, ответ таков:

Для IPv4 элемент SitePrefixLength должен быть равен 0.

BLOCKQUOTE>

252
задан Joan Venge 15 May 2009 в 06:17
поделиться

4 ответа

Попробуйте range (100, -1, -1) , третий аргумент является используемым приращением (задокументировано здесь ).

(параметры "диапазона", запуск, остановка, шаг описаны здесь )

356
ответ дан 23 November 2019 в 02:51
поделиться

На мой взгляд, это наиболее читаемый:

for i in reversed(xrange(101)):
    print i,
185
ответ дан 23 November 2019 в 02:51
поделиться
for i in range(100, -1, -1)

и несколько более длинное (и более медленное) решение:

for i in reversed(range(101))

for i in range(101)[::-1]
32
ответ дан 23 November 2019 в 02:51
поделиться

Как правило, в Python вы можете использовать отрицательные индексы для начала с обратной стороны:

numbers = [10, 20, 30, 40, 50]
for i in xrange(len(numbers)):
    print numbers[-i - 1]

Результат:

50
40
30
20
10
16
ответ дан 23 November 2019 в 02:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: