Немного базы Python:
Когда вы проходите циклом по итерируемому объекту, функция
В примере ниже обратите внимание на пробел между кавычками (
У
👉 @PythonPortal
print по горизонталиКогда вы проходите циклом по итерируемому объекту, функция
print печатает каждый элемент с новой строки. Это потому, что у print есть параметр end. По умолчанию значение этого параметра содержит символ перевода строки (end="\n"). Чтобы печатать в одну строку, нужно убрать перевод строки и заменить его на пустую строку (end="").В примере ниже обратите внимание на пробел между кавычками (
" "): он нужен, чтобы числа печатались с пробелами между ними. Если убрать пробел (""), числа выведутся слитно, вот так: 1367. Вот код, который это показывает:In [1]: my_list = [1, 3, 6, 7]
for number in my_list:
print(number, end=" ")
// 1 3 6 7
У
print есть еще один параметр: sep. Мы используем sep, чтобы задать, чем разделять выводимые значения. Ниже в качестве разделителя используется символ /:In [2]: print('12', '12', '1990', sep='/')
// 12/12/1990Please open Telegram to view this post
VIEW IN TELEGRAM
👍23❤8🤯3
Если ты только начинаешь с Python, остановись и внимательно посмотри
Не меняй список во время прохода по нему.
Когда ты модифицируешь список прямо во время итерации, итератор начинает путаться. Он не “знает”, что список изменился прямо у него под ногами.
Например, этот код сломан:
Здесь мы используем
Лучший способ сделать это: итерироваться по копии:
Когда ты проходишь по копии (поверхностной копии), индексы в исходной копии не меняются.
Еще лучше использовать list comprehension:
Никогда, ни при каких условиях не модифицируй список (или любую коллекцию) прямо во время итерации по нему. Итератор плохо переносит структурные изменения: он может пропускать элементы, обрабатывать один и тот же элемент дважды или (в некоторых случаях, например со словарями) выбрасывать
👉 @PythonPortal
Не меняй список во время прохода по нему.
Когда ты модифицируешь список прямо во время итерации, итератор начинает путаться. Он не “знает”, что список изменился прямо у него под ногами.
Например, этот код сломан:
items = [1, 2, 2, 3, 4]
for item in items:
if item == 2:
items.remove(item)
print(items)
# Output: [1, 2, 3, 4]
Здесь мы используем
remove(), чтобы удалить все двойки из списка. Но если посмотреть на вывод, одна 2 все равно осталась. Почему так происходит: когда ты удаляешь элемент из списка, все элементы справа сдвигаются влево. А цикл продолжает идти дальше. В итоге происходит вот что: находится и удаляется первая 2. Вторая 2 сдвигается на ее место. Цикл переходит к следующему индексу и пропускает эту 2.Лучший способ сделать это: итерироваться по копии:
for item in items[:]:
if item == 2:
items.remove(item)
print(items)
# Output: [1, 3, 4]
Когда ты проходишь по копии (поверхностной копии), индексы в исходной копии не меняются.
Еще лучше использовать list comprehension:
items = [x for x in items if x != 2]
Никогда, ни при каких условиях не модифицируй список (или любую коллекцию) прямо во время итерации по нему. Итератор плохо переносит структурные изменения: он может пропускать элементы, обрабатывать один и тот же элемент дважды или (в некоторых случаях, например со словарями) выбрасывать
RuntimeError. Это плохая практика.Please open Telegram to view this post
VIEW IN TELEGRAM
❤24👍14🔥6🤣1
Google раздал шума: в Chrome выкатили ранний превью WebMCP, и это приподносят как замену веб-скрейпингу
Теперь любой сайт может стать нативным инструментом для AI-агентов.😶
👉 @PythonPortal
Теперь любой сайт может стать нативным инструментом для AI-агентов.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯19❤9🤔1😢1
Немного базы Python. День 2: cлияние словарей
Если у тебя есть два словаря, которые нужно объединить, это можно сделать двумя простыми способами. Можно использовать оператор merge (
1️⃣ Использование оператора merge (
Вывод:
2️⃣ Метод 2: использование оператора merge (
С этим оператором нужно поместить словари внутрь фигурных скобок. В коде ниже мы “подставляем” два словаря для объединения с помощью двух операторов
Вывод:
👉 @PythonPortal
Если у тебя есть два словаря, которые нужно объединить, это можно сделать двумя простыми способами. Можно использовать оператор merge (
|) или оператор (**). Ниже у нас есть два словаря: first_dict и second_dict. Мы будем использовать эти два метода, чтобы объединить словари. Вот код:|)first_dict = {"kelly": 23,
"Derick": 14, "John": 7}
second_dict = {"Ravi": 45, "Mpho": 67}
combined_dict = first_dict | second_dict
print(combined_dict)Вывод:
{'kelly': 23, 'Derick': 14, 'John': 7, 'Ravi': 45, 'Mpho': 67}**)С этим оператором нужно поместить словари внутрь фигурных скобок. В коде ниже мы “подставляем” два словаря для объединения с помощью двух операторов
*. Оба словаря заключены в фигурные скобки и разделены запятой.first_dict = {"kelly": 23,
"Derick": 14, "John": 7}
second_dict = {"Ravi": 45, "Mpho": 67}
combined_dict = {**first_dict, **second_dict}
print(combined_dict)Вывод:
{'kelly': 23, 'Derick': 14, 'John': 7, 'Ravi': 45, 'Mpho': 67}Please open Telegram to view this post
VIEW IN TELEGRAM
❤27👍7🔥3🤝1
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣48😁4
На Stepik добавили курс «Linux с нуля»
Этот курс закрывает всю обязательную Linux-базу для работы в IT. Подойдёт для:
Внутри 20+ модулей: от установки Linux и работы с файлами до сетей, прав, дисков, процессов, автоматизации на Bash и многого другого. Всё сразу закрепляется на практике (200+ заданий с автопроверкой)
Материал подаётся понятным языком, шаг за шагом, на реальных примерах и с наглядными схемами
После прохождения вы получите сертификат, который можно добавить в резюме.
В ближайшие 48ч курс доступен со скидкой 30% по промокоду «
Этот курс закрывает всю обязательную Linux-базу для работы в IT. Подойдёт для:
- разработчиков
- девопсов и админов
- специалистов по данным и ML
- специалистов поддержки и сопровождения
- тестировщиков и безопасников
Внутри 20+ модулей: от установки Linux и работы с файлами до сетей, прав, дисков, процессов, автоматизации на Bash и многого другого. Всё сразу закрепляется на практике (200+ заданий с автопроверкой)
Материал подаётся понятным языком, шаг за шагом, на реальных примерах и с наглядными схемами
После прохождения вы получите сертификат, который можно добавить в резюме.
В ближайшие 48ч курс доступен со скидкой 30% по промокоду «
23LINUX30»: открыть курс на Stepik🤔5❤3😁1🌚1🤣1
Ускорь JSON-ответы FastAPI в 2 раза, а то и больше
1. Обновись до только что вышедшего FastAPI 0.131.0
2. Объявляй response model (тип возврата)
После этого🦀
https://fastapi.tiangolo.com/advanced/custom-response/#json-performance
👉 @PythonPortal
1. Обновись до только что вышедшего FastAPI 0.131.0
2. Объявляй response model (тип возврата)
После этого
@pydantic будет заниматься JSON-сериализацией на стороне Rust https://fastapi.tiangolo.com/advanced/custom-response/#json-performance
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11