91.96K
Category: programmingprogramming

1

1.

Списки, кортежи, словари и множества в Python
Свойства, способы создания и методы
ПМ02 — Составление алгоритма и создание блок-схемы
на основе спецификации программного обеспечения
Содержание
1
Общее сравнение коллекций
2
2
Список (list)
2.1 Свойства . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Создание . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Методы списка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4 Примеры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
2
2
2
3
3
Кортеж (tuple)
3.1 Свойства . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Создание . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 Методы кортежа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4 Примеры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
3
3
3
4
4
Словарь (dict)
4.1 Свойства . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 Создание . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3 Методы словаря . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4 Примеры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
4
4
4
5
5
Множество (set)
5.1 Свойства . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Создание . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3 Методы множества . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4 Примеры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
5
5
5
6
6
Итоговое сравнение методов
6
7
Когда какой тип использовать
7
1

2.

1 Общее сравнение коллекций
В Python есть четыре основных встроенных типа коллекций: список (list), кортеж (tuple),
словарь (dict) и множество (set). Они отличаются по изменяемости, упорядоченности, допустимости дубликатов и способу доступа к элементам.
Тип
Изменяемый Упорядоченный
Дубликаты
Список
(list)
Кортеж
(tuple)
Словарь
(dict)
Множество
(set)
Да
Да
Разрешены
Синтаксис создания
[1, 2, 3]
Нет
Да
Разрешены
(1, 2, 3)
Да
Да (с 3.7)
Да
Нет
Ключи уникальны
Не допускаются
{"a": 1, "b":
2}
{1, 2, 3}
2 Список (list)
2.1 Свойства
• Упорядоченная изменяемая последовательность элементов.
• Может содержать элементы разных типов, включая вложенные списки.
• Допускает дублирующиеся значения.
• Поддерживает индексацию (в т.ч. отрицательную) и срезы (slice).
• Динамически меняет размер при добавлении/удалении элементов.
2.2 Создание
numbers = [1, 2, 3, 4]
mixed = [1, "text", 3.14, True]
empty = []
via_constructor = list("abc")
# ['a', 'b', 'c']
2.3 Методы списка
Метод
Описание
append(x)
Добавляет элемент x в конец списка.
extend(iterable) Добавляет все элементы итерируемого объекта в
конец списка.
insert(i, x)
Вставляет элемент x на позицию i.
remove(x)
Удаляет первое вхождение значения x; вызывает
ValueError, если значение не найдено.
pop([i])
Удаляет и возвращает элемент по индексу i (по
умолчанию — последний).
clear()
Удаляет все элементы списка.
2

3.

Метод
index(x[,
start[, end]])
count(x)
sort(key=None,
reverse=False)
reverse()
copy()
Описание
Возвращает индекс первого вхождения значения x.
Возвращает количество вхождений значения x.
Сортирует список на месте.
Разворачивает порядок элементов списка на месте.
Возвращает поверхностную копию списка.
2.4 Примеры
fruits = ["apple", "banana"]
fruits.append("pear")
fruits.insert(1, "kiwi")
fruits.remove("banana")
last = fruits.pop()
fruits.sort()
fruits.reverse()
print(fruits.count("kiwi"))
# ['apple', 'banana', 'pear']
# ['apple', 'kiwi', 'banana', 'pear']
# ['apple', 'kiwi', 'pear']
# last = 'pear'
# sort alphabetically
# reverse the order
# 1
3 Кортеж (tuple)
3.1 Свойства
• Упорядоченная неизменяемая последовательность элементов.
• После создания нельзя добавлять, удалять или изменять элементы.
• Допускает дублирующиеся значения и элементы разных типов.
• Благодаря неизменяемости может использоваться как ключ словаря (если все элементы hashable).
• Обычно работает быстрее списка и занимает меньше памяти.
3.2 Создание
point = (10, 20)
single = (5,)
# a trailing comma is required for a one−
element tuple
without_brackets = 1, 2, 3
via_constructor = tuple([1, 2, 3])
3.3 Методы кортежа
Так как кортеж неизменяем, у него нет методов изменения содержимого — только два встроенных метода:
Метод
count(x)
Описание
Возвращает количество вхождений значения x.
3

4.

Метод
index(x[,
start[, end]])
Описание
Возвращает индекс первого вхождения значения x.
3.4 Примеры
coords = (3, 5, 3, 8)
print(coords.count(3))
print(coords.index(5))
# 2
# 1
# tuple unpacking
x, y, z, w = coords
4 Словарь (dict)
4.1 Свойства
• Хранит пары ключ: значение.
• Изменяемый; ключи должны быть уникальными и неизменяемыми (hashable) — например, строки, числа, кортежи.
• Значения могут быть любого типа, включая дубликаты.
• Начиная с Python 3.7 гарантированно сохраняет порядок добавления элементов.
• Доступ к значению по ключу выполняется за время O(1) в среднем.
4.2 Создание
student = {"name": "Aldiyar", "age": 21, "active": True}
empty = {}
via_constructor = dict(name="Aldiyar", age=21)
via_pairs = dict([("a", 1), ("b", 2)])
4.3 Методы словаря
Метод
get(key,
default=None)
keys()
values()
items()
update(other)
Описание
Возвращает значение по ключу; если ключа нет
— возвращает default вместо ошибки.
Возвращает представление всех ключей словаря.
Возвращает представление всех значений словаря.
Возвращает представление пар (ключ,
значение).
Обновляет словарь парами из другого словаря
или итерируемого объекта.
4

5.

Метод
pop(key[,
default])
popitem()
setdefault(key,
default=None)
clear()
copy()
fromkeys(iterable,
value=None)
Описание
Удаляет ключ и возвращает его значение; при
отсутствии ключа возвращает default или вызывает KeyError.
Удаляет и возвращает последнюю добавленную
пару (ключ, значение).
Возвращает значение ключа; если ключа нет —
создаёт его со значением default.
Удаляет все элементы словаря.
Возвращает поверхностную копию словаря.
Создаёт новый словарь с ключами из
iterable и одинаковым значением value.
4.4 Примеры
student = {"name": "Aldiyar", "age": 21}
print(student.get("age"))
# 21
print(student.get("city", "unknown")) # 'unknown'
student.update({"city": "Astana"})
for key, value in student.items():
print(key, ":", value)
age = student.pop("age")
# age = 21
5 Множество (set)
5.1 Свойства
• Неупорядоченная коллекция уникальных элементов.
• Изменяемое; элементы должны быть неизменяемыми (hashable).
• Автоматически удаляет дубликаты при создании.
• Не поддерживает индексацию по позиции.
• Оптимизировано для быстрой проверки принадлежности (in) и теоретико-множественных
операций.
• Есть неизменяемый аналог — frozenset.
5.2 Создание
colors = {"red", "green", "blue"}
from_list = set([1, 2, 2, 3])
# {1, 2, 3} − duplicates removed
empty = set()
# {} creates a dict, not a set!
frozen = frozenset([1, 2, 3])
5.3 Методы множества
5

6.

Метод
add(x)
remove(x)
Описание
Добавляет элемент x в множество.
Удаляет элемент x; вызывает KeyError,
если элемента нет.
discard(x)
Удаляет элемент x, если он есть; ошибки не
вызывает.
pop()
Удаляет и возвращает произвольный элемент множества.
clear()
Удаляет все элементы множества.
union(*others) (или |)
Возвращает объединение множеств.
intersection(*others) Возвращает пересечение множеств.
(или &)
difference(*others)
Возвращает разность множеств.
(или -)
symmetric_
Возвращает элементы, присутствующие
difference(other) (или только в одном из множеств.
^)
issubset(other)
Проверяет, является ли множество подмножеством other.
issuperset(other)
Проверяет, является ли множество надмножеством other.
isdisjoint(other)
Проверяет отсутствие общих элементов.
update(*others)
Добавляет в множество элементы из других
множеств (аналог объединения на месте).
copy()
Возвращает поверхностную копию множества.
5.4 Примеры
a = {1, 2, 3}
b = {3, 4, 5}
print(a.union(b))
print(a.intersection(b))
print(a.difference(b))
print(a.symmetric_difference(b))
print(a.issubset({1, 2, 3, 4}))
# {1, 2, 3, 4, 5}
# {3}
# {1, 2}
# {1, 2, 4, 5}
# True
a.add(10)
a.discard(1)
print(a)
# {2, 3, 10}
6 Итоговое сравнение методов
Список (list)
append
extend
Кортеж
(tuple)
count
index
Словарь (dict)
Множество (set)
get
keys
add
remove
6

7.

Список (list)
Кортеж
(tuple)
insert
remove
pop
clear
index
count
sort
reverse
copy
Словарь (dict)
Множество (set)
values
items
update
pop
popitem
setdefault
clear
copy
fromkeys
discard
pop
union
intersection
difference
symmetric_difference
issubset
issuperset
isdisjoint
update
copy
7 Когда какой тип использовать
• list — когда важен порядок и данные будут изменяться (добавление, удаление, сортировка).
• tuple — когда данные не должны изменяться (координаты, константы, записи фиксированной структуры) или нужен ключ словаря из нескольких значений.
• dict — когда нужен быстрый доступ к данным по уникальному ключу (например, по
имени, ID).
• set — когда важна уникальность элементов и нужны быстрые операции проверки принадлежности или теоретико-множественные операции.
7
English     Русский Rules