Найти - Пользователи
Полная версия: range(len(x)) использование в цикле
Начало » Python для новичков » range(len(x)) использование в цикле
1
Shogun
Начал изучать питон и возник вопрос. В книге есть пример с циклом:

a = ['Mary', 'had', 'a', 'little', 'lamb']
for i in range(len(a)):
print(a[i])

И не очень понятно как работает range(len(a)). Если len(a) возвращает 5, а range(5) = (0, 5). То как так выходит, что возвращаются значения из списка “а”, а не 0, 1, 2, 3, 4?
Saturn
Это можно и так записать
a = ['Mary', 'had', 'a', 'little', 'lamb']
for i in a:
      print i
GaiveR
Потому что вы обращаетесь к элементам последовательности по индексу:

>>> a = ['Mary', 'had', 'a', 'little', 'lamb']
>>> a[0]
'Mary'
>>> a[4]
'lamb'
>>>

Вообще это не очень хороший паттерн с точки зрения питона. Обычно делают так:
myList = ['Mary', 'had', 'a', 'little', 'lamb']
for elem in myList:
    print elem

И не очень понятно как работает range(len(a)). Если len(a) возвращает 5, а range(5) = (0, 5)
range(5) = [0, 5) = 0, 1, 2, 3, 4
Shogun
GaiveR

Потому что вы обращаетесь к элементам последовательности по индексу:
>>> a = ['Mary', 'had', 'a', 'little', 'lamb']
>>> a[0]
'Mary'
>>> a[4]
'lamb'
>>>

Понял, т.е. по другому это - len(a) возвращает нам длину списка int, а потом range() нам это число раскладывает - от и до. А после перебираем циклом.

Спасибо
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB