Основы работы со списками и кортежами¶
Основные определения¶
- Список
Список — упорядоченная изменяемая последовательность объектов произвольного типа. В языке Python списки представлены типом
list.- Кортеж
Кортеж — неизменяемый аналог списков, которому соответствует тип данных
tuple.- Изменяемая последовательность
Изменяемая последовательность — последвательность, в которой после ее создания возможно изменение количества элементов или присваивание им объектов.
Создание списков и кортежей¶
Создание списка:
>>> s = []
>>> type(s)
<class 'list'>
>>> s = [1, 2, 3]
>>> type(s)
<class 'list'>
>>> s = list('iterable_obj')
>>> type(s)
<class 'list'>
>>> s
['i', 't', 'e', 'r', 'a', 'b', 'l', 'e', '_', 'o', 'b', 'j']
Создание кортежа:
>>> s = ()
>>> type(s)
<class 'tuple'>
>>> s = 1,
>>> type(s)
<class 'tuple'>
>>> s = tuple('iterable_obj')
>>> type(s)
<class 'tuple'>
>>> s
('i', 't', 'e', 'r', 'a', 'b', 'l', 'e', '_', 'o', 'b', 'j')
Используя конструкторы list() и tuple(), можно выполнять
преобразование последовательностей в список либо кортеж.
Операции со списками и кортежами¶
Списки и кортежи поддерживают общий для последовательностей набор операций. В примерах будет использован список:
>>> lst = [1, 2, 3]
-
x in s Проверка на принадлежность элемента
xпоследовательностиs:>>> 3 in lst True >>> 4 in lst False
-
min(s)¶ Наименьший элемент последовательности:
>>> min(lst) 1
-
max(s)¶ Наибольший элемент последовательности:
>>> max(lst) 3
Методы списков и кортежей¶
Подобно строкам, списки и кортежи поддерживают различные методы. Ниже будут приведены методы списков. Для кортежей реализованы только операции, которые не меняют исходный объект.
-
s.append(x)¶ Вставка элемента в конец списка:
>>> x = [1, 2, 3] >>> x.append(5) >>> x [1, 2, 3, 5]
-
s.extend(L)¶ Добавление элементов списка L в конец списка:
>>> x = [1, 2, 3] >>> x.extend([4, 5, 6]) >>> x [1, 2, 3, 4, 5, 6]
-
s.insert(i, x)¶ Вставка элемента x по индексу i:
>>> x = [1, 2, 3] >>> x.insert(1, 5) >>> x [1, 5, 2, 3]
-
s.remove(x)¶ Удаление первого вхождения x из списка:
>>> x = [1, 2, 3, 3, 2, 1] >>> x.remove(2) >>> x [1, 3, 3, 2, 1]
-
s.pop(x)¶ Извлечение элемента из списка:
>>> x = [1, 2, 3, 3, 2, 1] >>> x.pop(1) 2 >>> x [1, 3, 3, 2, 1] >>> x.pop() 1 >>> x [1, 3, 3, 2]
-
s.clear()¶ Удаление всех элементов из списка:
>>> x = [1, 2, 3] >>> x.clear() >>> x []
-
s.sort()¶ Сортировка списка:
>>> x = [1, 2, 3, 3, 2, 1] >>> x.sort() >>> x [1, 1, 2, 2, 3, 3]
-
s.reverse()¶ Изменение порядка элементов на обратный:
>>> x = [1, 2, 3] >>> x.reverse() >>> x [3, 2, 1]
-
s.index(x)¶ Поиск индекса первого вхождения элемента:
>>> x = [1, 2, 3, 3, 2, 1] >>> x.index(2) 1
Задачи¶
Пользователь вводит числа
aиb. Создать список, содержащий квадраты целых чисел расположенных между ними.Пользователь вводит числа до тех пор, пока не введет слово
end. Поместите введенные числа в список. Выведите на экран только нечетные элементы списка.Пользователь вводит числа до тех пор, пока не введет слово ‘end’. Поместите введенные числа в список. Подсчитайте количество четных и нечетных элементов в списке.
Дан список чисел. Выведите все элементы списка, которые больше предыдущего элемента.
Дан список чисел. Поменяйте местами минимальный и максимальный элемент этого списка.
Дан список чисел. Определите, сколько в нем различных элементов.
Петя перешёл в другую школу. На уроке физкультуры ему понадобилось определить своё место в строю. Помогите ему это сделать. Программа получает на вход последовательность чисел, означающих рост каждого человека в строю. После этого вводится число X – рост Пети. Все числа во входных данных натуральные и не превышают 200. Выведите номер, под которым Петя должен встать в строй. Если в строю есть люди с одинаковым ростом, таким же, как у Пети, то он должен встать после них.
Дан список чисел. Циклически сдвиньте элементы списка вправо (A[0] переходит на место A[1], A[1] на место A[2], …, последний элемент переходит на место A[0]).