Списки Python — функции и методы Python list()

Работа со списками в Python – важная составляющая работы с этим языком программирования. Нередко приходится передавать функциям сразу несколько аргументов. Поэтому рассмотрим подробно то, как создавать список, какие методы имеет этот объект, а также какие операторы можно использовать к элементам объекта этого класса.

Создание списка

Чтобы создать список в Python, необходимо заключить соответствующие значения в квадратные скобки. Например, так.

z = [3, 7, 4, 2]  # Создание списка

Задача списка в Python – хранить несколько элементов, которые могут относиться к разным типам данных. Если говорить о примере выше, то все элементы являются целочисленными значениями. Но это вовсе не обязательно. Например, в этом примере значения относятся к типам int, bool, string, float.

# Создание списка с разными типам данных 

heterogenousElements = [3, True, 'Витя', 2.0]

Работа с отдельными элементами списка

Как же осуществляется взаимодействие с конкретным элементом списка в Python? Каждый элемент, который входит в этот массив данных, имеет индекс, который соответствует ему. Отсчет начинается с нуля, но возможна и индексация отрицательными значениями. Если для обозначения элемента используются индексы, начиная 0 и выше, то отсчет идет от первого индекса к последнему. Если же отсчет идет с отрицательных чисел, то направление отсчета обратное. Все просто. 

z = [3, 7, 4, 2]  # создаем список 

# обращение к первому элементу списка с индексом 0

print(z[0]) 

# элемент с индексом 0 -> 3

# выведите последний элемент списка 

>>> print(z[-1])

2

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

Понятие среза списка

Чтобы получить целый спектр значений списка, используются срезы. Например, нужно получить последовательность значений, начинающихся индексом 3 и заканчивая индексом 5. В этом случае используется срез в таком формате: [3:5]. Учтите, что последний элемент не учитывается при индексации среза. То есть, последний индекс указывает на элемент, который уже не входит в последовательность.

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

# Создайте список

z = [3, 7, 4, 2]

# Вывод элементов с индексом от 0 до 2 (не включая 2)

print(z[0:2]) 

# вывод: [3, 7]

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

>>> print(z[:3])

[3, 7, 4]

Если же нам надо получить список с элементами, начиная со второго элемента, и до самого конца, то используется такой код. Дальше мы можем увидеть, что интерпретатор поставил на вывод. 

# начиная с индекса 1 до конца списка

>>> print(z[1:])

[7, 4, 2]

Редактирование составляющих список элементов

Преимущество список в Python заключается в том, что их можно редактировать. То есть, если понадобилось обновить определенный элемент после его создания, это легко сделать. Приведем пример кода, как это делается.

z = [3, 7, 4, 2]  # Создание списка

# Изменяем элемент с индексом 1 на строку ‘fish’

z[1] = ‘fish’

print(z)

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

Методы и функции списков Python

Метод – это функция, которая вызывается из списка. Его задача – выполнить определенные действия, связанные с самим объектом. Рассмотрим методы, которые можно использовать.

Index

Этот метод позволяет получить местонахождение первого индекса, значение которого равняется x. В приведенном ниже примере возвращаемое им значение – 0.

# Создайте список

>>> z = [4, 1, 5, 4, 10, 4]

>>> print(z.index(4))

0

Также пользователь может указать место начала поиска.

>>> print(z.index(4, 3))

3

Count

Если вы знаете английский язык, то уже можете догадаться, что делает этот метод. С его помощью можно получить количество раз, которое значение встречается в определенном списке. 

Работает эта функция следующим образом.

>>> random_list = [4, 1, 5, 4, 10, 4]

>>> print(random_list.count(4))

3

Sort

Метод, осуществляющий сортировку списка по возрастанию. 

z = [3, 7, 4, 2]

z.sort()

print(z)

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

# Сортировка и изменение исходного списка от наивысшего к наименьшему

z.sort(reverse = True)

print(z)

Сортировка может осуществляться от А до Я или наоборот, если в качестве элементов списка используются строки. 

# Сортировка списка строками

names = ["Стив", "Рейчел", "Майкл", "Адам", "Джессика", "Лестер"]

names.sort()

print(names)

Append

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

z = [7, 4, 3, 2]

z.append(3)

print(z)

Remove

Этот метод используется для удаления заданного в скобках значения. Но убирается исключительно то, которое попадается первым. Например, если в списке используется несколько цифр «2», то этот метод уберет исключительно одну. Если надо больше, то придется использовать метод несколько раз.

z = [7, 4, 3, 2, 2]

z.remove(2)

print(z)

Pop’

Этот метод в качестве аргумента принимает индекс, соответствующий элементу списка, который нужно удалить. Кроме этого, он возвращает удаленный элемент. Поэтому его можно вставить в другой список или использовать в другом коде. Если вами не был указан индекс, метод просто убирает последний элемент. 

z = [7, 4, 3, 3]

print(z.pop(1))

print(z)

Extend

Этот метод используется для того, чтобы добавить новые элементы в список. Его отличие от предыдущего, который был нами рассмотрен, в том, что пользователь может добавлять больше одного элемента за раз. Для этого аргументу необходимо передать список. 

Например, добавим числа 4, 5 в конец нашего списка, хранящегося в переменной z.

z = [7, 3, 3]

z.extend([4,5])

print(z)

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

>>> print([1,2] + [3,4])

[7, 3, 3, 4, 5]

Insert

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

z = [7, 3, 3, 4, 5]

z.insert(4, [1, 2])

print(z)

Простые операции над списком

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

Списки Python - функции и методы Python list()

А вот небольшой фрагмент кода с примером использования приведенных выше функций. 

>>> list1 = [2, 3, 4, 1, 32]

>>> 2 in list1  # 2 в list1?

True

>>> 33 not in list1  # 33 не в list1?

True

>>> len(list1)  # количество элементов списка

5

>>> max(list1)  # самый большой элемент списка

32

>>> min(list1)  # наименьший элемент списка

1

>>> sum(list1)  # сумма чисел в списке

42

# генератор списков python (list comprehension)

>>> x =  [i for i in range(10)]

>>> print(x)

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

>>> print(list1.reverse()) # разворачивает список

[32, 1, 4, 3, 2]

Операторы + и * для списков

Если необходимо объединить два списка, используется оператор +. 

list1 = [11, 33]

list2 = [1, 9]

list3 = list1 + list2

print(list3)

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

list4 = [1, 2, 3, 4]

list5 = list4 * 3

print(list5)

Оператор in и not in

Этот оператор используется для того, чтобы проверить, является ли элемент составляющей частью списка. Если да, возвращается значение True. Если же нет, то тогда – False. Приведем пример кода, демонстрирующий принцип использования этих операторов.

>>> list1 = [11, 22, 44, 16, 77, 98]

>>> 22 in list1

True

Если же использовать оператор not in, он выполняет противоположную задачу: возвращает истину в случае отсутствия элемента в списке и ложь – если он присутствует там.

>>> list1 = [11, 22, 44, 16, 77, 98]

>>> 22 in list1

True

Использование цикла for для прохождения по списку

Любой список – это последовательность данных. Таким образом, для перебора всех его элементов, можно использовать цикл for

list1 = [1,2,3,4,5]

for i in list1:

    print(i, end=» «)

Превращение списка в строку

Для этого используется специализированный метод .join. Его синтаксис следующий:

«,».join([«a», «b», «c»]) -> «a,b,c»

Обратите внимание, что разделитель необходимо указывать в кавычках перед join. При использовании этой функции обратите внимание и на то, что список должен состоять из строк.

Вот интересный фрагмент кода, демонстрирующий преобразование списка в строку. 

mylist = [‘spam’, ‘ham’, ‘eggs’]

print(‘, ‘.join(mylist))

Такой подход используется, если это просто список строк. А вот если в список входят объекты, не относящиеся к строкам (например, целочисленные значения), то уже этот метод использовать не получится. 

Если необходимо попросту получить строку, в которой в качестве разделителей используются запятые, можно воспользоваться таким шаблоном.

list_of_ints = [80, 443, 8080, 8081]

print(str(list_of_ints).strip(‘[]’))

В случае наличия квадратных скобок в объектах используется следующий вариант кода.

>>> print(str(list_of_ints)[1:-1])

80, 443, 8080, 8081

Также можно воспользоваться функцией map(), чтобы выполнить преобразование каждого элемента в список строки, а потом присоединиться к ним. 

>>> print(', '.join(map(str, list_of_ints)))

80, 443, 8080, 8081

>>> print('\n'.join(map(str, list_of_ints)))

80

443

8080

8081

Видим, что выполнение операций со списками освоить несложно. Достаточно потренироваться использовать некоторые функции.

ОфисГуру
Adblock
detector