Одна особенность filter
Синтаксис встроенной функции
Эта функция фильтрует значения переданной последовательности с помощью функции
Например, таким способом можно отфильтровать только строки, состоящие из чисел:
А еще (внезапно) вместо функции можно использовать
Синтаксис встроенной функции
filter
такой: filter(function, iterable)
. Эта функция фильтрует значения переданной последовательности с помощью функции
function
. Если function
получает очередной элемент последовательности и возвращает True
, то элемент попадает в результат работы filter
, иначе нет. Например, таким способом можно отфильтровать только строки, состоящие из чисел:
Или только четные значения:
>>> strings = ['two', 'list', '', 'dict', '100', '1', '50']
>>> list(filter(str.isdigit, strings))
['100', '1', '50']
Часто в качестве фильтров используют лямбда-функции или член-функции классов.
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
list(filter(lambda x: x % 2 == 0, numbers))
А еще (внезапно) вместо функции можно использовать
None
: И тогда
>>> random = [1, 'a', 0, False, True, '0', '']
>>> list(filter(None, random))
[1, 'a', True, '0']
filter
вернет только truthy значения. 🐠Что здесь хорошего
Расскажу тем, что здесь недавно (и напомню тем, кто давно), что за движ в этом канале.
Сначала обо мне. Канал авторский, автора зовут Маша Чакчурина (это я). До IT я занималась астрофизикой, а в программировании начинала как C++ разработчица в компании StarLine в СПб. Там я перешла на Python, писала API, микросервисы, поучаствовала в их беспилотнике. После этого работала в Kaspersky, была техничсеким кофаундером в стартапе, делала голосового помощника в Сбере. Всего я в бэкенде шесть лет, последние два преподаю.
Итак, что здесь хорошего.
👶 Тут есть посты об основах языка и стиле кода для junior коллег. Например, что такое мутабельность и иммутабельность, какая сложность добавления операции в список, чем is отличается от ==, как инициализировать контейнеры в функциях и многие другие.
👩🔧 Поменьше постов о низкоуровневых особенностях языка для middle и senior, например, развернуто о том, как работает TimSort.
😽 Есть о софт-скиллах в IT, например, о том, как онбордиться на новый проект, или о вопросах коллегам. Еще у нас с основательницей школы IT Girl School Алисой был эфир с разбором резюме подписчиков.
⚡ Бывают новости Python: о свежих либах, обновлениях или о новых крутых курсах от гуру вроде Дэна Бейдера.
🧐 Иногда пишу об истории языка (как здесь и здесь).
🎪 Есть шютки, например, послушайте песню про PEP8.
🧭 Есть старая подборка бесплатных материалов по computer science (давно хочу обновить).
Еще я веду курс по Python для тех, кто еще никогда не писал программы. Курс составила сама, с моей фирменной подачей «просто о сложном». Время от времени я набираю группы на этот курс и много сил трачу на поддержку учеников. Для меня это важный личный проект🤍
Если вы знаете кого-то, кто интересуется Python, перешлите ему или ей, пожалуйста, этот текст. Помогите мне встретить тех, кому интересно то, что я делаю✨
И оставайтесь в CoolPython 🐠
Расскажу тем, что здесь недавно (и напомню тем, кто давно), что за движ в этом канале.
Сначала обо мне. Канал авторский, автора зовут Маша Чакчурина (это я). До IT я занималась астрофизикой, а в программировании начинала как C++ разработчица в компании StarLine в СПб. Там я перешла на Python, писала API, микросервисы, поучаствовала в их беспилотнике. После этого работала в Kaspersky, была техничсеким кофаундером в стартапе, делала голосового помощника в Сбере. Всего я в бэкенде шесть лет, последние два преподаю.
Итак, что здесь хорошего.
👶 Тут есть посты об основах языка и стиле кода для junior коллег. Например, что такое мутабельность и иммутабельность, какая сложность добавления операции в список, чем is отличается от ==, как инициализировать контейнеры в функциях и многие другие.
👩🔧 Поменьше постов о низкоуровневых особенностях языка для middle и senior, например, развернуто о том, как работает TimSort.
😽 Есть о софт-скиллах в IT, например, о том, как онбордиться на новый проект, или о вопросах коллегам. Еще у нас с основательницей школы IT Girl School Алисой был эфир с разбором резюме подписчиков.
⚡ Бывают новости Python: о свежих либах, обновлениях или о новых крутых курсах от гуру вроде Дэна Бейдера.
🧐 Иногда пишу об истории языка (как здесь и здесь).
🎪 Есть шютки, например, послушайте песню про PEP8.
🧭 Есть старая подборка бесплатных материалов по computer science (давно хочу обновить).
Еще я веду курс по Python для тех, кто еще никогда не писал программы. Курс составила сама, с моей фирменной подачей «просто о сложном». Время от времени я набираю группы на этот курс и много сил трачу на поддержку учеников. Для меня это важный личный проект🤍
Если вы знаете кого-то, кто интересуется Python, перешлите ему или ей, пожалуйста, этот текст. Помогите мне встретить тех, кому интересно то, что я делаю✨
И оставайтесь в CoolPython 🐠
Прямо сейчас в голосовом чате с крутыми специалистами по DS и бэку обсуждаем:
🐠 Python фреймворки,
🐠 Асинхронность,
🐠 GPT-3,
🐠 достижения машинного зрения,
🐠 студию Артемия Лебедева 😅,
🐠 версии Python,
🐠 плохой и хороший код.
Присоединяйтесь. Записи не будет)
Кто был, поделитесь, пожалуйста, как вам? Делать еще такие эфиры?
🐠 Python фреймворки,
🐠 Асинхронность,
🐠 GPT-3,
🐠 достижения машинного зрения,
🐠 студию Артемия Лебедева 😅,
🐠 версии Python,
🐠 плохой и хороший код.
Присоединяйтесь. Записи не будет)
Кто был, поделитесь, пожалуйста, как вам? Делать еще такие эфиры?
Магические методы
Магические методы Python -- важный элемент синтаксиса языка. В них нет ничего волшебного или тайного, а наоборот, мы постоянно их вызываем, перегружаем и используем в коде.
Давно хотела о них написать вводную и вот авторы канала @it_resume любезно подготовили для нас с вами карточки.
Наслаждайтесь!
Магические методы Python -- важный элемент синтаксиса языка. В них нет ничего волшебного или тайного, а наоборот, мы постоянно их вызываем, перегружаем и используем в коде.
Давно хотела о них написать вводную и вот авторы канала @it_resume любезно подготовили для нас с вами карточки.
Наслаждайтесь!
Про культуру коммитов
Работаю над куском кода, который опирается на json файл. Файл этот длиной 7к+ строк (только не спрашивайте, как так вышло). И кусок этот одновременно
- сложный
- используется большим количеством пользователей.
И тут из мастера в этот json прилетают изменения. В которых во всем файле пробелы заменены на табы. То есть, дифф слишком большой и отсмотреть глазами не получается. Поправлю, конечно, но досадно -- и небезопасно.
В связи с чем напоминаю, как коммитить (вот, например, хорошая статья от другого автора)
Для меня главное в этом тексте:
Один коммит = одна атомарная задача
И от себя бы еще добавила:
Дифф удобно смотреть ривьюеру
Чтобы этого добиться, перед каждым коммитом нужно отсматривать изменения в каждом файле, которые хотите залить в репо: с помощью
И еще я никогда не делаю
чтобы даже не привыкать добавлять всю работу, которая у меня есть локально: в ней бывают мусор и наброски кода. Если себя приучить к этому, то гораздо сложнее случайно залить то, что лить не хотели.
Поделитесь, какие хорошие практики работы с git вы усвоили за время работы?
Работаю над куском кода, который опирается на json файл. Файл этот длиной 7к+ строк (только не спрашивайте, как так вышло). И кусок этот одновременно
- сложный
- используется большим количеством пользователей.
И тут из мастера в этот json прилетают изменения. В которых во всем файле пробелы заменены на табы. То есть, дифф слишком большой и отсмотреть глазами не получается. Поправлю, конечно, но досадно -- и небезопасно.
В связи с чем напоминаю, как коммитить (вот, например, хорошая статья от другого автора)
Для меня главное в этом тексте:
Один коммит = одна атомарная задача
И от себя бы еще добавила:
Дифф удобно смотреть ривьюеру
Чтобы этого добиться, перед каждым коммитом нужно отсматривать изменения в каждом файле, которые хотите залить в репо: с помощью
git diff
или в IDE.И еще я никогда не делаю
git add .
чтобы даже не привыкать добавлять всю работу, которая у меня есть локально: в ней бывают мусор и наброски кода. Если себя приучить к этому, то гораздо сложнее случайно залить то, что лить не хотели.
Поделитесь, какие хорошие практики работы с git вы усвоили за время работы?
Уже больше часа лежит весь Фейсбук. Вместе с продуктами компании (WhatsApp, Instagram, мессенджером), отвалились даже DNS и страница статусов https://status.fb.com. И может не работать всё то, что опиралось на fb.
Интересно, что случилось.
Интересно, что случилось.
Вопрос по Python. Как думаете, является ли тип complex составным?
Anonymous Quiz
19%
Это простой тип
36%
Это составной тип
45%
Что такое complex?
Пара фактов о численных типах
(которые вы, возможно, не знали)
Факт 1
В Python есть три встроенных численных типа. Кроме
Комплексные числа много используют в математике (например, с их помощью можно брать некоторые забористые интегралы, которые обычным способом не берутся), и в физике (особенно в расчетах, связанных с электричеством и магнетизмом).
Сконструировать комплексное число в Python можно так:
или вот так:
Получится одно и то же.
Факт 2
Все численные типы в Python унаследованы от класса
Кстати, сюрприз:
Факт 3
Под капотом логический тип — те же числа, только
Это же, впрочем, дает ни разу не интуитивное поведение в некоторых случаях:
Факт 4
Complex не является составным типом. Это просто объект, который принимает до двух параметров при инициализации.
Такие дела!🤗
(которые вы, возможно, не знали)
Факт 1
В Python есть три встроенных численных типа. Кроме
int
и float
, которыми мы обычно пользуемся, есть еще complex
— комплексные числа. Комплексные числа много используют в математике (например, с их помощью можно брать некоторые забористые интегралы, которые обычным способом не берутся), и в физике (особенно в расчетах, связанных с электричеством и магнетизмом).
Сконструировать комплексное число в Python можно так:
a = complex(2, 1)
или вот так:
a = 2 + 1j
Получится одно и то же.
Факт 2
Все численные типы в Python унаследованы от класса
Number
. Проверить это можно так: from numbers import Number
isinstance(1984, Number) #True
isinstance(3.1415926, Number) #True
isinstance(1j, Number) #True
Кстати, сюрприз:
bool
тоже унаследован от Number
:isinstance(False, Number) #True
Факт 3
Под капотом логический тип — те же числа, только
bool
имеет всего два значения: 0
и 1
. Это обеспечивает нам легкое приведение True
к единице, а False
к нулю. Это же, впрочем, дает ни разу не интуитивное поведение в некоторых случаях:
1/False # ZeroDivisionError: division by zero
True * 1 # 1
False * 1 # 0
complex(True, 3.9) # (1+3.9j)
my_list = [1, 2, 3, 4]
my_list[False] # 1
"False"[True] # a
А, и даФакт 4
Complex не является составным типом. Это просто объект, который принимает до двух параметров при инициализации.
Такие дела!🤗
/
и *
в определнии функцииВидели когда-нибудь вот такой синтаксис?
def foo(first, /, second, *, third):
print(first, second, third)
Выглядит странно?
На самом деле
/
и *
навязывают положение ключевых и позиционных аргументов.Попытаемся, например, вызвать
foo()
с неправильным набором параметров: >>> foo("bar", "qux")
...
TypeError: foo() missing 1 required keyword-only argument: 'third'
Нужен keyword аргумент, окей, укажем все параметры:
>>> foo("bar", "baz", "qux")
...
TypeError: foo() takes 2 positional arguments but 3 were given
А, один из них по ключу:
>>> foo("bar", "baz", third="qux")
bar baz qux
Получилось!
Оба символа опциональны. И, в моем опыте, если ставят, то чаще только звездочку.
Источник: https://docs.python.org/3/tutorial/controlflow.html#special-parameters
🐠
Делюсь с вами коллективным учебником по машинному обучению из Яндекса. На самом деле наполовину делюсь, наполовину сохраняю себе, чтобы прочитать позже. Теплый привет Вите Кантору
У нас опять есть группа, можно покомментить и покидаться какашками
UPD Правила игры те же: нетоксично про питон, программирование, инфраструктуру и за жизнь. Но нужно быть пуськой.
UPD2 https://t.me/+CgNMmJwzjYI1MmYy
UPD Правила игры те же: нетоксично про питон, программирование, инфраструктуру и за жизнь. Но нужно быть пуськой.
UPD2 https://t.me/+CgNMmJwzjYI1MmYy