Для людей, которым не нравится ужасно выглядящий код с php-тегами, взорванными повсюду ...
<?php
if (have_posts()):
while (have_posts()) : the_post();
the_content();
endwhile;
else:
echo '<p>Sorry, no posts matched your criteria.</p>';
endif;
?>
есть очень подробная таблица на python wiki , которая отвечает на ваш вопрос.
Однако в вашем конкретном примере вы должны использовать enumerate
для получения индекса итерации в цикле. примерно так:
for i, item in enumerate(some_seq):
bar(item, i)
Ответ «не определен». Язык Python не определяет базовую реализацию. Вот несколько ссылок на цепочку рассылки, которая может вас заинтересовать.
Кроме того, более питонический способ написания вашего цикла будет следующим:
def foo(some_list):
for item in some_list:
bar(item)
Списки действительно O (1) для индексации - они реализованы как вектор с пропорциональным превышением доступности, поэтому работают так, как вы ожидаете. Вероятная причина, по которой вы обнаружили этот код медленнее, чем вы ожидали, - это вызов « range (0, len (some_list))
».
range ()
создает новый список указанных size, поэтому, если some_list имеет 1,000,000 элементов, вы создадите новый список из миллионов элементов заранее. Это поведение изменяется в python3 (диапазон - это итератор), эквивалент которого в python2 - xrange или даже лучше для вашего случая, enumerate
Пока не могу комментировать, поэтому
, если вам нужен индекс и значение, используйте enumerate:
for idx, item in enumerate(range(10, 100, 10)):
print idx, item