Список в Python используется для хранения последовательности различных типов данных. Списки в Python являются мутабельными типами, то есть мы можем изменять их элементы после их создания. Однако в Python существует шесть типов данных, способных хранить последовательности, но наиболее распространенным и надежным типом является список (List).
Список можно определить как коллекцию значений или элементов различных типов. Элементы в списке разделяются запятой (,
) и заключаются в квадратные скобки []
.
Список можно определить следующим образом
L1 = ["John", 102, "USA"]
L2 = [1, 2, 3, 4, 5, 6]
Если попытаться вывести тип L1, L2 и L3 с помощью функции type()
, то получится список.
print(type(L1))
print(type(L2))
Вывод:
<class 'list'>
<class 'list'>
Особенности списков (List) в Python
Список имеет следующие характеристики:
- Списки упорядочены.
- К элементу списка можно получить доступ по индексу.
- Списки являются изменяемыми типами.
- Список может хранить количество различных элементов.
Проверим первое утверждение о том, что списки являются упорядоченными.
a = [1,2,"Peter",4.50,"Ricky",5,6]
b = [1,2,5,"Peter",4.50,"Ricky",6]
a ==b
Вывод:
False
Оба списка состоят из одинаковых элементов, но во втором списке изменена позиция индекса 5-го элемента, что нарушает порядок списков. При сравнении обоих списков возвращается false
.
Списки сохраняют порядок элементов на протяжении всего жизненного цикла. Именно поэтому они являются упорядоченной коллекцией объектов.
a = [1, 2,"Peter", 4.50,"Ricky",5, 6]
b = [1, 2,"Peter", 4.50,"Ricky",5, 6]
a == b
Вывод:
True
Давайте рассмотрим более подробный пример со списком.
emp = ["John", 102, "USA"]
Dep1 = ["CS",10]
Dep2 = ["IT",11]
HOD_CS = [10,"Mr. Holding"]
HOD_IT = [11, "Mr. Bewon"]
print("printing employee data...")
print("Name : %s, ID: %d, Country: %s"%(emp[0],emp[1],emp[2]))
print("printing departments...")
print("Department 1:\nName: %s, ID: %d\nDepartment 2:\nName: %s, ID: %s"%(Dep1[0],Dep2[1],Dep2[0],Dep2[1]))
print("HOD Details ....")
print("CS HOD Name: %s, Id: %d"%(HOD_CS[1],HOD_CS[0]))
print("IT HOD Name: %s, Id: %d"%(HOD_IT[1],HOD_IT[0]))
print(type(emp),type(Dep1),type(Dep2),type(HOD_CS),type(HOD_IT))
Вывод:
printing employee data...
Name : John, ID: 102, Country: USA
printing departments...
Department 1:
Name: CS, ID: 11
Department 2:
Name: IT, ID: 11
HOD Details ....
CS HOD Name: Mr. Holding, Id: 10
IT HOD Name: Mr. Bewon, Id: 11
<class 'list'> <class 'list'> <class 'list'> <class 'list'> <class 'list'>
В приведенном выше примере мы создали списки, состоящие из данных о сотруднике и отделе, и вывели соответствующие данные. Просмотрите приведенный выше код, чтобы лучше понять концепцию списка.
Индексирование и разбивка списков
Индексация обрабатывается так же, как и в случае со строками. Доступ к элементам списка осуществляется с помощью оператора slice []
.
Индекс начинается с 0 и идет до длины - 1. Первый элемент списка хранится по 0-му индексу, второй элемент списка хранится по 1-му индексу и так далее.
Мы можем получить подсписок списка, используя следующий синтаксис.
list_varible(start:stop:step)
start
обозначает начальную индексную позицию списка.stop
обозначает последнюю индексную позицию списка.step
используется для пропуска n-го элемента в пределахstart:stop
.
Рассмотрим следующий пример:
list = [1,2,3,4,5,6,7]
print(list[0])
print(list[1])
print(list[2])
print(list[3])
# Slicing the elements
print(list[0:6])
# By default the index value is 0 so its starts from the 0th element and go for index -1.
print(list[:])
print(list[2:5])
print(list[1:6:2])
Вывод:
1
2
3
4
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, 5, 6, 7]
[3, 4, 5]
[2, 4, 6]
В отличие от других языков, Python предоставляет возможность использовать и отрицательную индексацию. Отрицательные индексы отсчитываются справа. Последний (самый правый) элемент списка имеет индекс -1; соседний с ним левый элемент находится под индексом -2 и так далее, пока не встретятся самые левые элементы.
Давайте рассмотрим следующий пример, в котором мы будем использовать отрицательную индексацию для доступа к элементам списка.
list = [1,2,3,4,5]
print(list[-1])
print(list[-3:])
print(list[:-1])
print(list[-3:-1])
Вывод:
5
[3, 4, 5]
[1, 2, 3, 4]
[3, 4]
Как мы обсуждали выше, мы можем получить элемент, используя отрицательную индексацию. В приведенном выше коде первый оператор print
вернул самый правый элемент списка. Второй оператор печати вернул вложенный список и так далее.
Обновление значений списка
Списки являются наиболее универсальными структурами данных в Python, поскольку они являются изменяемыми, и их значения можно обновлять с помощью оператора slice и оператора присваивания.
Python также предоставляет методы append()
и insert()
, которые можно использовать для добавления значений в список.
Рассмотрим следующий пример для обновления значений внутри списка.
list = [1, 2, 3, 4, 5, 6]
print(list)
# It will assign value to the value to the second index
list[2] = 10
print(list)
# Adding multiple-element
list[1:3] = [89, 78]
print(list)
# It will add value at the end of the list
list[-1] = 25
print(list)
Вывод:
[1, 2, 3, 4, 5, 6]
[1, 2, 10, 4, 5, 6]
[1, 89, 78, 4, 5, 6]
[1, 89, 78, 4, 5, 25]
Элементы списка также можно удалять с помощью ключевого слова del
. Python также предоставляет нам метод remove()
, если мы не знаем, какой элемент должен быть удален из списка.
Рассмотрим следующий пример удаления элементов списка.
list = [1, 2, 3, 4, 5, 6]
print(list)
# It will assign value to the value to second index
list[2] = 10
print(list)
# Adding multiple element
list[1:3] = [89, 78]
print(list)
# It will add value at the end of the list
list[-1] = 25
print(list)
Вывод:
[1, 2, 3, 4, 5, 6]
[1, 2, 10, 4, 5, 6]
[1, 89, 78, 4, 5, 6]
[1, 89, 78, 4, 5, 25]
Операции над списками в Python
Операторы конкатенации (+
) и повторения (*
) работают так же, как и со строками.
Давайте посмотрим, как список (List) реагирует на различные операторы.
Consider a Lists l1 = [1, 2, 3, 4], and l2 = [5, 6, 7, 8] to perform operation.
Оператор/Метод | Описание | Пример |
---|---|---|
* |
Оператор повторения позволяет повторять элементы списка несколько раз. | L1*2 = [1, 2, 3, 4, 1, 2, 3, 4] |
+ |
Конкатенирует список, указанный по обе стороны от оператора. | l1+l2 = [1, 2, 3, 4, 5, 6, 7, 8] |
in |
Возвращает true , если определенный элемент существует в определенном списке, иначе false . |
print(2 in l1) prints True. |
for in |
Цикл for используется для итерации по элементам списка. |
for i in l1: print(i) Output 1 2 3 4 |
Итерирование списка
Список можно итерировать с помощью цикла for - in
. Простой список, содержащий четыре строки, можно итерировать следующим образом.
list = ["John", "David", "James", "Jonathan"]
for i in list:
# The i variable will iterate over the elements of the List and contains each element in each iteration.
print(i)
Вывод:
John
David
James
Jonathan
Добавление элементов в список Python
Python предоставляет функцию append()
, которая используется для добавления элемента в список. Однако функция append()
может добавлять значение только в конец списка.
Рассмотрим следующий пример, в котором мы принимаем элементы списка от пользователя и печатаем список на консоли.
#Declaring the empty list
l =[]
#Number of elements will be entered by the user
n = int(input("Enter the number of elements in the list:"))
# for loop to take the input
for i in range(0,n):
# The input is taken from the user and added to the list as the item
l.append(input("Enter the item:"))
print("printing the list items..")
# traversal loop to print the list items
for i in l:
print(i, end = " ")
Вывод:
Enter the number of elements in the list:5
Enter the item:25
Enter the item:46
Enter the item:12
Enter the item:75
Enter the item:42
printing the list items
25 46 12 75 42
Удаление элементов из списка в Python
Python предоставляет функцию remove()
, которая используется для удаления элемента из списка. Рассмотрим следующий пример, чтобы понять эту концепцию.
list = [0,1,2,3,4]
print("printing original list: ");
for i in list:
print(i,end=" ")
list.remove(2)
print("\nprinting the list after the removal of first element...")
for i in list:
print(i,end=" ")
Вывод:
printing original list:
0 1 2 3 4
printing the list after the removal of first element...
0 1 3 4
Встроенные функции списков Python
Python предоставляет следующие встроенные функции, которые можно использовать со списками.
Функция | Описание |
---|---|
cmp(list1, list2) |
Сравнивает элементы обоих списков. |
len(list) |
Используется для вычисления длины списка. |
max(list) |
Возвращает максимальный элемент списка. |
min(list) |
Возвращает минимальный элемент списка. |
list(seq) |
Он преобразует любую последовательность в список. |
Давайте рассмотрим несколько примеров со списками.
Пример: 1 - Напишите программу для удаления дублирующегося элемента списка.
list1 = [1,2,2,3,55,98,65,65,13,29]
# Declare an empty list that will store unique values
list2 = []
for i in list1:
if i not in list2:
list2.append(i)
print(list2)
Вывод:
[1, 2, 3, 55, 98, 65, 13, 29]
Пример:2 - Напишите программу для нахождения суммы элементов в списке.
list1 = [3,4,5,9,10,12,24]
sum = 0
for i in list1:
sum = sum+i
print("The sum is:",sum)
Вывод:
The sum is: 67
Пример: 3 - Напишите программу для нахождения списков, состоящих хотя бы из одного общего элемента.
list1 = [1,2,3,4,5,6]
list2 = [7,8,9,2,10]
for x in list1:
for y in list2:
if x == y:
print("The common element is:",x)
Вывод:
The common element is: 2