Разделы инструкций

В сети

Пользователей: 56
Из них просматривают:
Аналоги: 24. Даташиты: 4. Инструкции: 3. Новости: 7. Остальное: 5. Программы: 2. Производители: 1. Теги: 2. Форум: 5. Чат: 3.
Участников: 5
Гостей: 51

an , alex01981 , Google , wolf170571 , Яндекс , далее...
Рекорд 2375 человек онлайн установлен 26.12.2015.

Партнёры


Партнёры

Новые объявления

Оглавление

4.3. Функции range() и xrange()

Если Вам необходимо перебирать последовательность чисел, то пригодится встроенная функция range(). Она создает список, содержащий арифметическую прогрессию:

 

>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

 

Указанная верхняя граница никогда не входит в созданную последовательность. range(10) создает список из 10 значений, точно соответствующих допустимым индексам для элементов последовательности, имеющей длину 10. Можно указать другую нижнюю границу или другое приращение (шаг), в том числе и отрицательное:

 

>>> range(5, 10)
[5, 6, 7, 8, 9]
>>> range(0, 10, 3)
[0, 3, 6, 9]
>>> range(-10, -100, -30)
[-10, -40, -70]

 

Для того, чтобы перебрать индексы последовательности, используйте совместно range() и len():

 

>>> a = ['У', 'Матери', 'есть', 'маленькая', 'овечка']
>>> for i in range(len(a)):
...     print i, a[i]
...
0 У
1 Матери
2 есть
3 маленькая
4 овечка

 

Дотошный читатель может заметить, что если нужно перебирать числа большого диапазона, создание списка будет неоправданно, а в некоторых случаях просто не хватит памяти:

 

>>> l=range(1000000000)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
MemoryError

 

Действительно, если мы не собираемся изменять список, достаточно создать псевдосписок — объект, для которого мы можем получить значения "элементов", но не можем изменить их или порядок их следования. Для этих целей в языке Python предусмотрена функция xrange():

 

>>> xrange(5, 10)
xrange(5, 10)
>>> xrange(0, 10, 3)
xrange(0, 12, 3)
>>> xrange(-10, -100, -30)
xrange(-10, -100, -30)
>>> a = ['У', 'Матери', 'есть', 'маленькая', 'овечка']
>>> for i in xrange(len(a)):
...     print i, a[i]
...
0 У
1 Матери
2 есть
3 маленькая
4 овечка

 

Примечания:
  • (в том числе и инструкция for) требует возможности получить произвольный элемент по индексу.
21
<< Меню >>  
Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити

Разное

При замене радиодетали освободить отверстие от припоя можно заострённой спичкой.

Интересно

Семь раз отмерь, один раз отрежь. И не перепутай!

Похожие инструкции