101 игра на python. Шпаргалки. Структуры данныx python
1. Списки (Lists)
Определение: Списки в Python – это упорядоченные, изменяемые коллекции элементов. Это значит, что ты можешь добавлять, удалять и изменять элементы в списке, и порядок элементов имеет значение.
Представление: Списки создаются с помощью квадратных скобок [], а элементы разделяются запятыми.
Особенности:
Могут содержать элементы разных типов данных (числа, строки, булевы значения, другие списки и т.д.).
Поддерживают индексацию (доступ к элементу по его позиции, начиная с 0).
Изменяемые (mutable).
Примеры:
2. Словари (Dictionaries)
Определение: Словари в Python – это неупорядоченные коллекции элементов, где каждый элемент состоит из пары "ключ-значение".
Представление: Словари создаются с помощью фигурных скобок {}, а пары "ключ-значение" разделяются двоеточием :.
my_dict = {"name": "John", "age": 30, "city": "New York"}
Особенности:
Ключи должны быть уникальными и неизменяемыми (обычно строки или числа), а значения могут быть любого типа.
Доступ к значениям осуществляется по ключу.
Изменяемые (mutable).
Неупорядоченные (порядок может не сохранятся)
Примеры:
3. Кортежи (Tuples)
Определение: Кортежи в Python – это упорядоченные, неизменяемые коллекции элементов.
Представление: Кортежи создаются с помощью круглых скобок (), а элементы разделяются запятыми.
my_tuple = (1, 2, 3, "apple", "banana", True)
Особенности:
Аналогичны спискам, но являются неизменяемыми (immutable), то есть нельзя изменить элементы после создания кортежа.
Могут содержать элементы разных типов данных.
Поддерживают индексацию.
Используются для представления неизменяемых последовательностей.
Примеры:
# Создание кортежа my_tuple = (1, 2, 3, "apple", "banana") print(f"Создание кортежа: {my_tuple}") # Доступ по индексу print(f"Элемент по индексу 2: {my_tuple[2]}") # Нельзя изменить элемент # my_tuple[0] = 0 # Это вызовет ошибку: TypeError: 'tuple' object does not support item assignment # Нельзя добавить элемент # my_tuple.append(4) # Это вызовет ошибку: AttributeError: 'tuple' object has no attribute 'append' # Нельзя удалить элемент # del my_tuple[0] # Это вызовет ошибку: TypeError: 'tuple' object doesn't support item deletion
4. SimpleNamespace
Определение: SimpleNamespace из модуля types - это простой класс, позволяющий создавать объекты, у которых атрибуты (свойства) можно задавать как при создании, так и потом.
Представление: Для создания объекта SimpleNamespace нужно импортировать его из types и передать в него именованные аргументы (или не передать их):
from types import SimpleNamespace my_namespace = SimpleNamespace(name="John", age=30, city="New York")
Особенности:
Позволяет создавать объекты с динамическими атрибутами (похоже на словарь).
Удобен для создания простых объектов для хранения данных.
Атрибуты доступны через точку, как у обычных объектов: my_namespace.name
В отличие от словарей, порядок атрибутов сохраняется.
Поля можно менять, но нельзя добавлять новые поля
Примеры:
from types import SimpleNamespace # Создание SimpleNamespace my_namespace = SimpleNamespace(name="John", age=30, city="New York") print(f"Создание SimpleNamespace: {my_namespace}") # Доступ к атрибуту print(f"Атрибут 'name': {my_namespace.name}") # Изменение атрибута my_namespace.age = 31 print(f"Изменение атрибута: {my_namespace}") # Нельзя добавить новый атрибут # my_namespace.occupation = "engineer" # Это вызовет ошибку: AttributeError: 'SimpleNamespace' object has no attribute 'occupation' # Нельзя удалить атрибут # del my_namespace.age # Это вызовет ошибку: AttributeError: age # Добавление через setattr setattr(my_namespace, "occupation", "engineer") print(f"Добавление атрибута: {my_namespace}") # Удаление через delattr delattr(my_namespace, "city") print(f"Удаление атрибута: {my_namespace}")
5. Другие структуры данных в Python:
Множества (Sets):
Неупорядоченные коллекции уникальных элементов.
Представление: {1, 2, 3, "apple"}
Изменяемые.
Строки (Strings):
Последовательность символов.
Представление: "hello", 'world'
Неизменяемые (immutable).
Поддерживают индексацию и многие другие операции.
Байтовые массивы (Bytearrays):
Изменяемая последовательность байтов.
Представление: bytearray(b"hello")
Используются для работы с двоичными данными.
Диапазоны (Ranges):
Последовательность целых чисел.
Представление: range(10), range(1, 10, 2)
Неизменяемые.
Используются для генерации последовательностей.
Frozen sets (неизменяемые множества)
Неизменяемая версия множеств (sets).
Представление frozenset([1, 2, 3])
UPD:
КОД ПЕРЕЕХАЛ ПО ЭТОМУ АДРЕСУ
































