Списки. Свойства списков. Примеры, которые демонстрируют разные свойства списков
Содержание
- 1. Что такое список в языке программирования Python? Особенности использования списков в Python
- 2. Основные свойства списков
- 3. Примеры создания списков. Создание пустого списка
- 4. Какое назначение операции list?
- 5. Как осуществляется доступ к элементу списка по его индексу. Примеры
- 6. Пример, который демонстрирует свойство увеличения/уменьшения длины списка
- 7. Как определить длину списка? Операция len. Пример
- 8. Пример создания списка, содержащего другие сложные объекты
- 9. Пример, демонстрирующий свойство произвольного количества вложений списков
- 10. Какой результат даст операция присваивания списков B=A?
- Связанные темы
Поиск на других ресурсах:
1. Что такое список в языке программирования Python? Особенности использования списков в Python
В языке программирования Python список есть тип объекта, который позволяет содержать объекты различных типов: числа, строки, списки и т.п.. Иными словами, список представляет собой запись, в которой объединены объекты различных типов (числа, строки, и т.п.).
Списки являются эффективными для программирования задач, в которых нужно сохранять различные виды данных.
По сравнению с другими языками программирования в Python работа с списками есть очень удобной. Чтобы реализовать корректную работу со списками в другом, более низкоуровневом языке программирования (например C), нужно приложить немало усилий. В Python списки реализуют все необходимое для обработки коллекций данных.
Списки – это объекты, которые можно непосредственно изменять с помощью операции присваивания.
⇑
2. Основные свойства списков
Выделяют следующие свойства списков:
- Списки это последовательности объектов произвольных типов. Списки – это группы объектов произвольных типов, которые обеспечивают позиционное последовательное размещение элементов в порядке «слева — направо».
- Обеспечение доступа к элементу списка по индексу. В Python есть возможность получить элемент списка с помощью операции индексирования (см. п. 5). В этом случае получается элемент списка с заданным индексом. Номера индексов в списке начинаются с 0. Кроме того, можно выполнять получение элементов по срезам и конкатенацию списков.
- Переменная длина списков. Количество элементов (объектов) в списке можно изменять. Иными словами, списки можно увеличивать и уменьшать (см. п. 6).
- Гетерогенность списков. Под понятием «гетерогенность списков» понимается то, что списки могут содержать другие сложные объекты (см. п. 8).
- Произвольное количество вложений списков. Списки могут содержать произвольное количество вложений. То есть, можно создавать списки из списков (см. п. 9).
- Списки принадлежат к категории изменяемых объектов. Это свойство означает, что списки могут изменяться непосредственно. Списки поддерживают операции, которые позволяют их изменять, а именно: присваивание по индексу, добавление/удаление элементов по индексу, конкатенация, присваивание срезу.
- Возможность содержать массивы ссылок на другие объекты. Списки могут содержать ноль и более ссылок на другие объекты (см. п. 8). Списки могут содержать ссылку на объект (объекты) в случае присваивания этого объекта имени переменной или структуры.
⇑
3. Примеры создания списков. Создание пустого списка
Пример 1. В примере демонстрируется создание списка с помощью оператора присваивания, оператора цикла while и оператора конкатенации +.
# Примеры создания списков различными способами # Создание пустого списка L1 = [] # Формирование списка с помощью операции конкатенации + i=0 while i<10: L1=L1+[i] i=i+1 print("L1 = ",L1)
Как видно из программного кода, в строке
L1 = []
создается пустой список.
В результате выполнения вышеприведенного кода будет выведен следующий результат
L1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Пример 2. Создается список символов из объекта типа «строка». Строка состоит из символов. Эти символы могут создать последовательность, то есть список.
# Примеры создания списков различными способами # Создание списка из итерируемого объекта L = list('abc') # L = [ 'a', 'b', 'c'] print("L = ",L)
В данном примере создание строки
L = list('abc')
можно написать по другому
L = list("abc")
Результат выполнения программы
L = ['a', 'b', 'c']
Пример 3. Создается список из непрерывной последовательности целых чисел
# Примеры создания списков различными способами # Создание списка из непрерырвной последовательности целых чисел L = list(range(1,10)) print("L = ",L) # L = [1, 2, 3, 4, 5, 6, 7, 8, 9]
Как видно из кода, для получения последовательности 1, 2, …, 9 используется операция
range(1,10)
Для создания списка используется операция
list(range(1,10))
Слово list означает имя типа данных «список» и используется для создания списков
Результат выполнения программы
L = [1, 2, 3, 4, 5, 6, 7, 8, 9]
⇑
4. Какое назначение операции list?
Операция list используется для создания новой копии списка. Операция list представляет собой имя типа данных «список».
В Python операция list реализована как отдельный класс, содержит большой набор методов работы со списками. Чтобы просмотреть перечень методов класса list в Python Shell нужно набрать
help(list)
Более подробно об использовании методов класса list описывается в теме:
Ниже приведены примеры создания списков с помощью операции list
DAYS = list(range(1,8)) # DAYS = [1, 2, 3, 4, 5, 6, 7] SYMBOLS = list("Hello") # ITEMS = ['H', 'e', 'l', 'l', 'o']
⇑
5. Как осуществляется доступ к элементу списка по его индексу. Примеры
Пример 1. В примере создается список из 3-х элементов различных типов. Затем по очереди выводятся значения каждого элемента списка.
>>> myList=[2.5, 8, "Hello"] >>> myList[0] # вывести элемент списка по индексу 0 2.5 >>> myList[1] 8 >>> myList[2] 'Hello' >>>
Как видно из примера, нумерация элементов списка начинается с 0.
Пример 2. Использование элемента списка в выражении. Важно, чтобы значение элемента списка было корректным в операциях, которые используются в выражении.
# использование списка в выражении L=[2,3,4] x=5 y=x+L[1] # y=5+3=8 print("y = ",y) LS = ["456", 7, 3.1415] s = "123" s += LS[0] # s="123456" print("s = ", s)
Результат выполнения программы
y = 8
s = 123456
Если попробовать добавить к числу строку
s = s + LS[1] # добавить к числу строку - ошибка!
то интерпретатор Python выведет сообщение об ошибке.
TypeError: can only concatenate str (not "int") to str
⇑
6. Пример, который демонстрирует свойство увеличения/уменьшения длины списка
В примере продемонстрировано свойство увеличения и уменьшения списка A. Увеличение длины списка выполняется в цикле с помощью операции конкатенации +. Уменьшение длины списка реализовано двумя способами:
- с помощью цикла while, в котором вычисляется позиция последнего элемента. Количество элементов в цикле определяется операцией len. Удаление элемента осуществляется операцией del;
- с помощью операции del, в которой задается диапазон удаляемых элементов списка.
Текст программы следующий:
# Примеры увеличения/уменьшения длины списка # создать список A = [] # сформировать список из 10 элементов путем ввода с клавиатуры i=0 while i<10: x = float(input("x = ")) A = A+[x] # увеличение списка i=i+1 print("Исходный список") print("A = ",A) print("Уменьшение списка A на 3 элемента") i=0 while i<3: n = len(A) # взять длину списка del A[n-1] # удалить последний элемент списка i=i+1 print("A = ", A) print("Уменьшение списка еще на 2 последних элемента") del A[n-3:n-1] print("A = ", A)
Результат выполнения программы
x = 1
x = 2
x = 3
x = 4
x = 5
x = 6
x = 7
x = 8
x = 9
x = 10
Исходный список
A = [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0]
Уменьшение списка A на 3 элемента
A = [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0]
Уменьшение списка еще на 2 последних элемента
A = [1.0, 2.0, 3.0, 4.0, 5.0]
⇑
7. Как определить длину списка? Операция len. Пример
Длина списка – это количество элементов списка. Длина списка определяется операцией len.
Пример. В примере определяется длина списка с помощью операции len.
# Определение длины списка операцией len A = [ 3.5, 2.8, 'abc', [ 2, 3, False]] length = len(A) print("length = ", length) # length = 4 B = [ "Hello world!" ] length = len(B) print("length = ", length) # length = 1 C = [ 0, 3, 2, 4, 7 ] length = len(C) print("length = ", length) # length = 5
Результат выполнения программы
length = 4 length = 1 length = 5
⇑
8. Пример создания списка, содержащего другие сложные объекты
В примере создается список с именем D, который содержит другие сложные объекты:
- два списка с именами A, B;
- кортеж с именем C;
- строку с именем STR.
# Пример списка, содержащего сложные объекты # объявляются списки, кортеж и строка символов A = [] # пустой список B = [ 1, 3, -1.578, 'abc' ] # список з разнотипными объектами C = ( 2, 3, 8, -10 ) # кортеж S = "Hello world!" # список, содержащий разные сложные объекты D = [ A, B, C, S ] print("D = ", D)
Выполнение программы дает следующий результат
D = [[], [1, 3, -1.578, 'abc'], (2, 3, 8, -10), 'Hello world!']
⇑
9. Пример, демонстрирующий свойство произвольного количества вложений списков
В примере формируется список L, включающий два подсписка
# Произвольное количество вложений списков L = [ [ 'abc', 2.5, 117 ], [ 29, False, 'DEF', "Hello" ] ] # вывод элементов списка print("L[0][1] = ", L[0][1]) # L[0][1] = 2.5 print("L[0][2] = ", L[0][2]) # L[0][2] = 117 print("L[1][0] = ", L[1][0]) # L[1][0] = 29 print("L[1][2] = ", L[1][2]) # L[1][2] = 'DEF'
Результат выполнения программы
L[0][1] = 2.5 L[0][2] = 117 L[1][0] = 29 L[1][2] = DEF
⇑
10. Какой результат даст операция присваивания списков B=A?
Если выполнить операцию присваивания списков B=A, то два имени будут указывать на один и тот же список. Это значит, что изменения в списке B будут влиятьна список A. Точно также, изменения в списке A будут влиять на список B.
Для того, чтоб из списка A создать другой список B (копию списка A), нужно использовать операцию list.
Например.
# Особенности операции присваивания = # Создать список A A = list(range(1,10)) # A = [1, 2, 3, 4, 5, 6, 7, 8, 9] # вызов операции присваивания B = A # Имена B и A указывают на один и тот же список # изменить список B B[3] = 100 # также изменяется список A # Создать копию списка A с помощью операции list C = list(A) # C = [1, 2, 3, 100, 5, 6, 7, 8, 9] # изменить список C C[3] = 777; # изменяется только список C, список A не изменяется print("A = ", A) print("B = ", B) print("C = ", C)
Вышеприведенная программа даст следующий результат
A = [1, 2, 3, 100, 5, 6, 7, 8, 9] B = [1, 2, 3, 100, 5, 6, 7, 8, 9] C = [1, 2, 3, 777, 5, 6, 7, 8, 9]
⇑
Связанные темы
⇑