Видеокурс выложен на сайте Altube.ru вместо Youtube и плеер Altube не поддерживает субтитры. Прошу решить вопрос о предоставлении русских субтитров в этом англоязычном видеокурсе. |
Списки
16.3. Обход списка
Наиболее общий путь обхода элементов списка - использование цикла for.
Похожий синтаксис используется для обхода строк:
>>> for cheese in cheeses: print cheese Cheddar Edam Gouda
Это замечательно работает, если вам необходимо прочитать элементы списка. Но если вы хотите записать или обновить элементы, понадобятся индексы. Общий подход, чтобы это сделать - объединить функции range и len:
>>> for i in range(len(numbers)): numbers[i] = numbers[i] * 2 >>> print numbers [34, 10]
Этот цикл обходит список и обновляет каждый элемент. len возвращает число элементов в списке. range возвращает список индексов от 0 до n-1, где n - длина списка. За каждый шаг в цикле переменной i присваивается индекс следующего элемента. Выражение присваивания в теле цикла использует i для чтения старого значения элемента и записи нового значения.
При обходе пустого списка в цикле for никогда не выполнится тело цикла:
>>> for x in empty: print 'This never happens.'
Хотя список может содержать другой список, вложенный список считается одним элементом. Длина списка будет равна четырем:
>>> len(['spam', 1, ['Brie', 'Roquefort', 'Pol le Veq'], [1, 2, 3]]) 4
16.4. Операторы списка
Оператор + объединяет списки:
>>> a = [1,2,3] >>> b = [4,5,6] >>> c = a + b >>> print c [1, 2, 3, 4, 5, 6]
Аналогичным образом, оператор * повторяет список заданное число раз:
>>> [0] * 4 [0, 0, 0, 0] >>> [1,2,3] * 3 [1, 2, 3, 1, 2, 3, 1, 2, 3]
16.5. Срез списка
Оператор среза также работает для списков:
>>> t = ['a', 'b', 'c', 'd', 'e', 'f'] >>> t[1:3] ['b', 'c'] >>> t[:4] ['a', 'b', 'c', 'd'] >>> t[3:] ['d', 'e', 'f']
Если опустить первый индекс, то срез начнется с начала. Если опустить второй - срез закончится в конце. Если опустить оба значения, то срез будет являться копией всего списка.
>>> t[:] ['a', 'b', 'c', 'd', 'e', 'f']
Т.к. списки можно изменять то, часто создается копия перед выполнением операций, которые складывают, удлиняют или искажают списки.
Оператор среза в левой части выражения может обновить несколько элементов:
>>> t = ['a', 'b', 'c', 'd', 'e', 'f'] >>> t[1:3] = ['x','y'] >>> print t ['a', 'x', 'y', 'd', 'e', 'f']