Основы программирования в Python

Алла Тамбовцева

Методы для списков

Создадим список a, с которым будем экспериментировать. Далее данный ноутбук построен в формате вопрос-ответ.

In [1]:
a = [1, 2, 3, 3, 5, 9, 0]

Как узнать, какой индекс в списке имеет нужный нам элемент?

Воспользоваться методом .index():

In [2]:
a.index(2)
Out[2]:
1

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

In [3]:
a.index(3) # 2 - то индекс первой тройки в списке
Out[3]:
2

Как узнать, сколько раз нужный нам элемент встречается в списке?

Воспользоваться методом .count():

In [4]:
print(a)
[1, 2, 3, 3, 5, 9, 0]
In [5]:
a.count(1)
Out[5]:
1
In [6]:
a.count(3)
Out[6]:
2

Как добавить элемент в середину списка (не в конец)?

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

До

[1, 2, 3, 3, 5, 9, 0]

После

[1, 2, 4, 3, 3, 5, 9, 0]

Воспользоваться методом .insert(): сначала указывается индекс элемента (на какое место его поставить), а затем сам элемент.

In [7]:
print(a)
a.insert(2, 4) # на место 2 ставим число 4
print(a)
[1, 2, 3, 3, 5, 9, 0]
[1, 2, 4, 3, 3, 5, 9, 0]

Как удалить из списка ненужный элемент?

Воспользоваться методом .remove():

In [8]:
print(a)
a.remove(9) # уберем элемент, равный 9
print(a)
[1, 2, 4, 3, 3, 5, 9, 0]
[1, 2, 4, 3, 3, 5, 0]

Внимание: если в списке есть повторяющиеся значения, .remove() уберет только первое совпадение:

In [9]:
print(a)
a.remove(3) # уберем элемент, равный 3
print(a)
[1, 2, 4, 3, 3, 5, 0]
[1, 2, 4, 3, 5, 0]

Еще внимание: метод .remove(), как и другие методы, изменяет исходный список!

Как удалить из списка элемент с определенным индексом?

Воспользоваться методом .pop().

In [10]:
print(a)
a.pop(0)
print(a)
[1, 2, 4, 3, 5, 0]
[2, 4, 3, 5, 0]

Внимание: метод .pop(), как и другие методы, изменяет исходный список!

Как отсортировать список?

Воспользоваться методом .sort().

In [11]:
print(a)
a.sort()
print(a)
[2, 4, 3, 5, 0]
[0, 2, 3, 4, 5]

По умолчанию метод .sort() упорядочивает значения в списке по возрастанию. Если нужна сортировка по убыванию, достаточно дописать аргумент reverse = True:

In [12]:
print(a)
a.sort(reverse = True)
print(a)
[0, 2, 3, 4, 5]
[5, 4, 3, 2, 0]

Как и другие методы, .sort() изменяет исходный список. Если мы хотим сохранить порядок элементов в исходном списке, можно воспользоваться функцией sorted. Тогда порядок элементов в списке сохранится, но при этом будет создан новый список с элементами, отсортированными по возрастанию.

In [13]:
b = [3, 8, 9, 1, 2, 6, 0]
In [14]:
c = sorted(b)
In [15]:
print(b)
print(c)
[3, 8, 9, 1, 2, 6, 0]
[0, 1, 2, 3, 6, 8, 9]

Или по убыванию:

In [16]:
d = sorted(b, reverse = True)
print(b)
print(d)
[3, 8, 9, 1, 2, 6, 0]
[9, 8, 6, 3, 2, 1, 0]