Введение
В этой лабораторной работе вы познакомитесь с фундаментальными структурами данных Python: списками, кортежами, множествами и словарями. Опираясь на знания, полученные в предыдущих работах, вы научитесь создавать, изменять и применять эти универсальные инструменты. Практический опыт поможет вам глубже понять основные концепции Python и подготовит вас к работе с более сложными данными в ваших программах.
Работа со списками
На этом этапе вы познакомитесь со списками — упорядоченными изменяемыми коллекциями элементов в Python.
Запустите интерпретатор Python, введя следующую команду в терминале:
python
Вы увидите приглашение Python (>>>), которое означает, что вы находитесь в интерактивной оболочке.

Начнем с создания списка. В интерпретаторе Python введите следующее:
fruits = ["apple", "banana", "cherry"]
print(fruits)
Вывод:
['apple', 'banana', 'cherry']
Списки в Python создаются с помощью квадратных скобок [], а элементы разделяются запятыми.
Вы можете получить доступ к элементам списка по их индексу. Помните, что в Python индексация начинается с нуля:
print(fruits[0]) ## Первый элемент
Вывод:
apple
print(fruits[-1]) ## Последний элемент
Вывод:
cherry
Списки являются изменяемыми (mutable), то есть вы можете менять их содержимое:
fruits[1] = "blueberry"
print(fruits)
Вывод:
['apple', 'blueberry', 'cherry']
Вы можете добавлять элементы в конец списка с помощью метода append() или вставлять их в определенную позицию с помощью метода insert():
fruits.append("date")
print(fruits)
Вывод:
['apple', 'blueberry', 'cherry', 'date']
fruits.insert(1, "banana")
print(fruits)
Вывод:
['apple', 'banana', 'blueberry', 'cherry', 'date']
Чтобы удалить элементы, можно использовать метод remove() или оператор del:
fruits.remove("cherry")
print(fruits)
Вывод:
['apple', 'banana', 'blueberry', 'date']
del fruits[0]
print(fruits)
Вывод:
['banana', 'blueberry', 'date']
Списки могут содержать элементы разных типов, включая другие списки:
mixed_list = [1, "hello", 3.14, [1, 2, 3]]
print(mixed_list)
Вывод:
[1, 'hello', 3.14, [1, 2, 3]]
Списки чрезвычайно универсальны и широко используются в Python для хранения наборов данных.
Понимание кортежей
На этом этапе вы узнаете о кортежах — упорядоченных неизменяемых последовательностях в Python.
В интерпретаторе Python создадим кортеж:
coordinates = (3, 4)
print(coordinates)
Вывод:
(3, 4)
Кортежи создаются с помощью круглых скобок ().
Как и в случае со списками, доступ к элементам кортежа осуществляется по индексу:
print(coordinates[0])
Вывод:
3
print(coordinates[1])
Вывод:
4
Однако, в отличие от списков, кортежи неизменяемы (immutable). Это означает, что вы не можете изменить их содержимое после создания:
coordinates[0] = 5 ## Это вызовет ошибку
Вывод:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
Кортежи могут содержать элементы разных типов:
person = ("Alice", 25, "Engineer")
name, age, occupation = person ## Распаковка кортежа
print(f"{name} is {age} years old and works as an {occupation}.")
Вывод:
Alice is 25 years old and works as an Engineer.
Распаковка кортежа — это удобный способ присвоить значения сразу нескольким переменным.
Вы можете создать кортеж из одного элемента, но не забудьте поставить запятую:
single_item_tuple = (42,)
print(type(single_item_tuple))
Вывод:
<class 'tuple'>
Без запятой Python воспримет это как обычное значение в скобках.
Кортежи часто используются для возврата нескольких значений из функции:
def get_dimensions():
return (1920, 1080)
width, height = get_dimensions()
print(f"Width: {width}, Height: {height}")
Вывод:
Width: 1920, Height: 1080
Кортежи полезны, когда нужно создать коллекцию данных, которая не должна меняться в процессе работы программы.
Изучение множеств
На этом этапе вы познакомитесь с множествами — неупорядоченными коллекциями уникальных элементов.
Создадим множество в интерпретаторе Python:
fruits = {"apple", "banana", "cherry"}
print(fruits)
Вывод:
{'cherry', 'banana', 'apple'}
Множества создаются с помощью фигурных скобок {} или функции set(). Обратите внимание, что при выводе порядок элементов может отличаться от исходного.
Множества автоматически удаляют дубликаты:
numbers = {1, 2, 2, 3, 3, 4}
print(numbers)
Вывод:
{1, 2, 3, 4}
Добавить элемент в множество можно методом add():
fruits.add("date")
print(fruits)
Вывод:
{'cherry', 'banana', 'apple', 'date'}
Для удаления элементов используйте метод remove():
fruits.remove("banana")
print(fruits)
Вывод:
{'cherry', 'apple', 'date'}
Множества поддерживают математические операции, такие как объединение, пересечение и разность:
set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1.union(set2)) ## Объединение
Вывод:
{1, 2, 3, 4, 5}
print(set1.intersection(set2)) ## Пересечение
Вывод:
{3}
print(set1.difference(set2)) ## Разность
Вывод:
{1, 2}
Проверить наличие элемента в множестве можно с помощью ключевого слова in:
print("apple" in fruits)
Вывод:
True
print("banana" in fruits)
Вывод:
False
Множества незаменимы, когда нужно хранить только уникальные значения или выполнять теоретико-множественные операции.
Работа со словарями
На этом этапе вы изучите словари — неупорядоченные коллекции пар «ключ-значение».
Создадим словарь в интерпретаторе Python:
person = {"name": "Alice", "age": 25, "occupation": "Engineer"}
print(person)
Вывод:
{'name': 'Alice', 'age': 25, 'occupation': 'Engineer'}
Словари создаются с помощью фигурных скобок {}, где ключи и значения разделяются двоеточием :.
Доступ к значениям осуществляется по ключам:
print(person["name"])
Вывод:
Alice
print(person["age"])
Вывод:
25
Словари изменяемы, поэтому вы можете добавлять или обновлять пары «ключ-значение»:
person["city"] = "New York"
person["age"] = 26
print(person)
Вывод:
{'name': 'Alice', 'age': 26, 'occupation': 'Engineer', 'city': 'New York'}
Чтобы удалить пару «ключ-значение», используйте оператор del:
del person["city"]
print(person)
Вывод:
{'name': 'Alice', 'age': 26, 'occupation': 'Engineer'}
Проверить наличие ключа в словаре можно с помощью in:
print("name" in person)
Вывод:
True
print("city" in person)
Вывод:
False
У словарей есть полезные методы keys(), values() и items():
print(person.keys())
Вывод:
dict_keys(['name', 'age', 'occupation'])
print(person.values())
Вывод:
dict_values(['Alice', 26, 'Engineer'])
print(person.items())
Вывод:
dict_items([('name', 'Alice'), ('age', 26), ('occupation', 'Engineer')])
Также можно использовать генераторы словарей (dictionary comprehension) для их лаконичного создания:
squares = {x: x**2 for x in range(5)}
print(squares)
Вывод:
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
Словари крайне эффективны для хранения и быстрого поиска данных по уникальным ключам.
Объединяем всё вместе
На заключительном этапе вы создадите программу, которая использует все структуры данных, изученные в этой лабораторной работе.
Выйдите из интерпретатора Python, введя exit() или нажав Ctrl+D.
Откройте WebIDE в среде LabEx VM.

Создайте новый файл с именем contact_manager.py в директории ~/project:
touch ~/project/contact_manager.py
Откройте созданный файл в редакторе WebIDE и добавьте в него следующий код:
def add_contact(contacts, name, phone, email):
contacts[name] = {"phone": phone, "email": email}
print(f"Contact {name} added successfully.")
def remove_contact(contacts, name):
if name in contacts:
del contacts[name]
print(f"Contact {name} removed successfully.")
else:
print(f"Contact {name} not found.")
def display_contacts(contacts):
if contacts:
print("\nContact List:")
for name, info in contacts.items():
print(f"Name: {name}, Phone: {info['phone']}, Email: {info['email']}")
else:
print("Contact list is empty.")
def main():
contacts = {}
favorite_contacts = set()
while True:
print("\nContact Manager")
print("1. Add Contact")
print("2. Remove Contact")
print("3. Display Contacts")
print("4. Add to Favorites")
print("5. Display Favorites")
print("6. Exit")
choice = input("Enter your choice (1-6): ")
if choice == "1":
name = input("Enter name: ")
phone = input("Enter phone number: ")
email = input("Enter email: ")
add_contact(contacts, name, phone, email)
elif choice == "2":
name = input("Enter name to remove: ")
remove_contact(contacts, name)
elif choice == "3":
display_contacts(contacts)
elif choice == "4":
name = input("Enter name to add to favorites: ")
if name in contacts:
favorite_contacts.add(name)
print(f"{name} added to favorites.")
else:
print(f"Contact {name} not found.")
elif choice == "5":
print("\nFavorite Contacts:")
for name in favorite_contacts:
print(name)
elif choice == "6":
print("Thank you for using Contact Manager. Goodbye!")
break
else:
print("Invalid choice. Please try again.")
if __name__ == "__main__":
main()
Эта программа демонстрирует использование словарей, множеств и списков для создания простой системы управления контактами.
Сохраните файл (в WebIDE включено автосохранение) и запустите его с помощью следующей команды в терминале:
python ~/project/contact_manager.py
Попробуйте поработать с программой: добавьте контакты, удалите их, просмотрите список, добавьте кого-то в избранное. Пример взаимодействия:
Contact Manager
1. Add Contact
2. Remove Contact
3. Display Contacts
4. Add to Favorites
5. Display Favorites
6. Exit
Enter your choice (1-6): 1
Enter name: Alice
Enter phone number: 123-456-7890
Enter email: alice@example.com
Contact Alice added successfully.
Contact Manager
1. Add Contact
2. Remove Contact
3. Display Contacts
4. Add to Favorites
5. Display Favorites
6. Exit
Enter your choice (1-6): 1
Enter name: Bob
Enter phone number: 987-654-3210
Enter email: bob@example.com
Contact Bob added successfully.
Contact Manager
1. Add Contact
2. Remove Contact
3. Display Contacts
4. Add to Favorites
5. Display Favorites
6. Exit
Enter your choice (1-6): 3
Contact List:
Name: Alice, Phone: 123-456-7890, Email: alice@example.com
Name: Bob, Phone: 987-654-3210, Email: bob@example.com
Contact Manager
1. Add Contact
2. Remove Contact
3. Display Contacts
4. Add to Favorites
5. Display Favorites
6. Exit
Enter your choice (1-6): 4
Enter name to add to favorites: Alice
Alice added to favorites.
Contact Manager
1. Add Contact
2. Remove Contact
3. Display Contacts
4. Add to Favorites
5. Display Favorites
6. Exit
Enter your choice (1-6): 5
Favorite Contacts:
Alice
Contact Manager
1. Add Contact
2. Remove Contact
3. Display Contacts
4. Add to Favorites
5. Display Favorites
6. Exit
Enter your choice (1-6): 6
Thank you for using Contact Manager. Goodbye!
Программа наглядно показывает практическое применение словарей (для хранения данных контакта), множеств (для хранения уникальных имен избранных контактов) и списков (неявно используемых в логике меню).
Резюме
В ходе этой лабораторной работы вы изучили основные структуры данных Python: списки, кортежи, множества и словари. Вы научились создавать, изменять и использовать эти инструменты, которые необходимы для эффективного управления данными в программировании.
Вы начали со списков, освоив работу с упорядоченными коллекциями. Затем перешли к кортежам, поняв их неизменяемую природу и сценарии использования для фиксированных наборов данных. Далее вы погрузились в изучение множеств, открыв для себя их способность хранить уникальные элементы и выполнять математические операции. Наконец, вы поработали со словарями, научившись управлять парами «ключ-значение» для быстрого поиска и хранения информации.
Для закрепления материала вы создали практическую программу управления контактами, объединившую несколько структур данных. Этот проект показал, как различные типы данных взаимодействуют в реальном приложении, демонстрируя мощь и гибкость Python.
Эти структуры данных составляют основу большинства программ на Python. По мере вашего продвижения в изучении языка вы увидите, что они бесценны для решения самого широкого круга задач. Продолжайте практиковаться, используя эти структуры в различных сценариях, чтобы закрепить свои знания и повысить мастерство программирования.



