В этой шпаргалке собраны все самые важные методы для работы со списками, которые помогут вам управлять данными списков без проблем.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍33🤝20🔥19
This media is not supported in your browser
VIEW IN TELEGRAM
Stepik — это обучающая платформа, которая предоставляет онлайн-курсы и интерактивные задания по программированию
📌 Ссылочка: stepik.org
👉 Python Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥28👍4
Работа со ссылками на изменяемые объекты в Python может быть настоящей ловушкой. Например, если передать изменяемый объект в функцию, любые изменения внутри функции повлияют на оригинал — даже если вы этого не планировали.
Рассмотрим на примере передачи списка:
def add_element(data, element):
data.append(element)
my_list = [1, 2, 3]
add_element(my_list, 4)
print(my_list) # Вывод: [1, 2, 3, 4]
Хотя функция
add_element
не возвращает результат, изменения отражаются в my_list
. Это происходит потому, что список передается по ссылке.Чтобы избежать нежелательных изменений, можно создать копию объекта:
def add_element(data, element):
data = data.copy()
data.append(element)
my_list = [1, 2, 3]
add_element(my_list, 4)
print(my_list) # Вывод: [1, 2, 3]
Теперь
my_list
остается неизменным. Это позволяет избежать случайных ошибок в сложных проектах, где важно контролировать состояние данных.А как вы считаете, насколько важно следить за ссылками при передаче данных?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26🔥12🤝3
📖 Python с нуля
⬇️ Скачать книгу
👉 Python Ready | #книга
Подробное руководство для начала в разработке на pytho, вы начнете с самых азов, как настроить среду разработки и дойдете до разработки собственного приложения
Автор: Петр Левашов
Год: 2024
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14🤝5
1. Использование collections.deque для очередей:
deque
позволяет эффективно работать с очередями и списками с обоих концов за время O(1):from collections import deque
queue = deque([1, 2, 3])
queue.append(4) # добавление в конец
queue.popleft() # удаление с начала
print(queue) # вывод: deque([2, 3, 4])
2. Использование генераторов для экономии памяти: Генераторы позволяют создавать последовательности данных без необходимости хранить их все в памяти:
def generate_numbers():
for i in range(5):
yield i
for num in generate_numbers():
print(num) # вывод: 0 1 2 3 4
3. Использование set для уникальных элементов и быстрого поиска: Операции поиска и удаления в множестве (
set
) выполняются за время O(1), что быстрее, чем в списке:unique_numbers = set([1, 2, 3, 4, 5])
print(3 in unique_numbers) # вывод: True
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13🤝6👍4
Рассмотрим несколько простых функций для работы с itertools, данный модуль помогает эффективно генерировать и обрабатывать различные данные:
- Генерация последовательности
- Зацикленный вывод элементов
- Генерация перестановок
🔥 — если узнал новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥52🤝11👍7
This media is not supported in your browser
VIEW IN TELEGRAM
Codecademy — одна из лучших платформ, на ней предоставлен материал как для начинающего уровня, так и для продвинутых, на сайте есть много разных разделов с информацией
📌 Ссылочка: codecademy.com
👉 Python Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍5
1. Использование списковых включений — Они позволяют компактно создавать списки, упрощая чтение и сокращая код:
squares = [x * x for x in range(10)]
print(squares) # вывод: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
2. Сравнение строк с помощью `in` — Оператор
in
позволяет проверять наличие подстроки в строке просто и эффективно:sentence = "Python is great"
print("great" in sentence) # вывод: True
3. Использование `defaultdict` для создания словарей с значениями по умолчанию —
defaultdict
из модуля collections
позволяет избежать ошибок при обращении к несуществующим ключам:from collections import defaultdict
word_count = defaultdict(int)
word_count['hello'] += 1
print(word_count['hello']) # вывод: 1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24🔥11🤝3
📖 Python без проблем
⬇️ Скачать книгу
👉 Python Ready | #книга
Подробное руководство для начинающих в программировании людей, научит вас самым основам, а также алгоритмам и структурам данных
Автор: Даниэль Зингаро
Год: 2023
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍4
Давайте рассмотрим несколько базовых методов toolz, которые позволяют производить операции над данными достаточно эффективно и удобно:
- Разделение данных
- Объединение словарей
- Создание композиций функций
🔥 — если узнал новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥44👍8🤝3
Когда дело доходит до управления ресурсами, такими как файлы или сетевые соединения, Python предоставляет один из самых удобных инструментов — контекстные менеджеры и конструкция with. Часто разработчики начинают с ручного закрытия ресурсов, что может привести к потенциальным утечкам
В стандартной ситуации, если нам требуется открыть файл, то код может выглядеть так:
file = open('example.txt', 'r')
content = file.read()
file.close()
Здесь, если в процессе чтения произойдет ошибка, файл может остаться открытым, что приводит к утечкам ресурсов. Конструкция with решает эту проблему:
with open('example.txt', 'r') as file:
content = file.read()
# Файл автоматически закрывается здесь
Как создать свой контекстный менеджер?
Вы можете реализовать собственный контекстный менеджер с помощью метода
__enter__()
и __exit__()
:class MyManager:
def __enter__(self):
print("Ресурс открыт")
return self
def __exit__(self, exc_type, exc_value, traceback):
print("Ресурс закрыт")
with MyManager() as manager:
print("Работаем с ресурсом")
При использовании
with
метод enter
вызывается в начале блока, а exit
— при выходе из него, даже если произошла ошибкаЖми 🔥 если понравился пост
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥32👍6🤝1