Задачи

Python. Списки

Список - это последовательность элементов - объектов произвольного типа. Элементы списка пронумерованы с нуля, то есть индекс первого элемента - 0.

В отличии от массивов в доугих языках программирования, элементы в списке могут быть разного типа, т.е. список может содержать одновременно числа, строки, другие списки и т.д.

Список можно объявить пустым и затем добавлять элементы методом append:

list = []
for i in range(10):
    list.append(0);

Также список можно задать перечислением элементов:

list = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

В Python есть инструмент, отличающий его от других языков, - генератор списков. Например, тот же список, состоящий из 10 нулей можно создать с его помощью инструкцией в одной строке:

list = [0 for i in range(10)]

Или еще проще:

list = [0] * 10

Доступ к каждому элементу списка осуществляется как и в строках по его индексу: list[0] - первый элемент списка.

Также как у строк, у списков можно получать срезы: list[a:b:c] - список элементов с индексами от a до b - 1 с шагом c.

Размер списка можно получить при помощи функции len.

Некоторые методы списков приведены в таблице:

Метод Описание
list.append(x) Добавляет элемент x в конец списка
list.insert(i, x) вставляет элемент x с индексом i
list.pop([i]) Возвращает элемент с индексом i и удаляет его из списка. Если индекс не указан, то удаляет последний элемент.
list.sort([key=функция]) Сортирует список на основе функции. Если функция не задана, то сортирует по возрастанию.
list.reverse() Разворачивает список, т.е. меняются местами первый и последний элементы, второй и предпоследний и т.д.

Например, пользователь вводит десять целых чисел в список. Отсортировать по возрастанию и вывести полученный список:

a = []
for i in range(10):
    a.append(int(input('Введите элемент ' + str(i) + ': ')))
a.sort()
print(a)

Пользователь вводит слова, разделенные пробелом. Каждое слово разместить в элементе списка, вывеcти полученный список и количество слов в нем:

a = input('Введите текст: ').split()
print(a)
print('Количество слов: ', len(a))

Часто данные необходимо представлять в виде таблиц или матриц. Такие данные можно размещать в списке, каждый элемент которого представляет из себя строку таблицы - список элементов, каждый из которых относится к столбцу таблицы. Например, таблицу из двух строк и пяти столбцов можно представить:

a = [ [0, 1, 2, 3, 4], [5, 6, 7, 8, 9] ]

Доступ к каждой ячейке таблицы осуществляется по двум индексам: строки и столбца. Например, a[0][4] - ячейка первой строки и пятого столбца.

Выведем эту таблицу:

a = [ [0, 1, 2, 3, 4], [5, 6, 7, 8, 9] ]
for i in range(2):
    for j in range(5):
        print(a[i][j], end = ' ')
    print()

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

a = []
for i in range(3):
    row = input().split()
    for j in range(len(row)):
        row[j] = int(row[j])
    a.append(row)
print(a)

В следующем примере применяется генератор списка из строки:

a = []
for i in range(3):
    a.append([int(j) for j in input().split()])

В нижеследующих задачах, если иное не указано, подразумевается список из 10 целых числел.

 

Задачи для самостоятельного решения