Автор оригинала: Chris.
Проблема : Как выполнить одна строка, если условные задания в Python?
Пример : Скажем, вы начинаете со следующего кода.
x = 2 boo = True
Вы хотите установить значение х
к 42
Если Boo
это Правда
и ничего не делайте иначе.
Давайте погрузимся в разные способы достичь этого в Python. Начнем с обзора:
Упражнение : Запустите код. Все выводит то же самое?
Далее вы будете погружаться в каждый из этих методов и повысить ваш Сверхдержание одноклассника Действительно
Метод 1: Темнарный оператор
Самый основной Тернарный оператор х если с остальными y
Возвращает выражение х
Если логическое выражение C
оценивает Правда
Отказ В противном случае, если выражение C
оценивает Ложь
Торговый оператор возвращает альтернативное выражение y
.
if else
Возврат экспрессии оператора в случае, если условие оценивается к истинному | |
Условие, которое определяет, нужно ли возвращать или ветку. | |
Возврат экспрессии оператора в случае, если условие оценивает ложь |
Давайте вернемся к нашей примерной проблеме! Вы хотите установить значение х
к 42
Если Boo
это Правда
и ничего не делайте иначе. Вот как это сделать в одной строке:
x = 42 if boo else x
При использовании Ternary Operator работает, вы можете задаться вопросом, можно ли избежать этого ... еще х
Часть для ясности кода? В следующем методе вы узнаете, как!
Если вам нужно улучшить свое понимание тройного оператора, посмотрите следующее видео:
Вы также можете прочитать соответствующую статью:
- Python One Line Terrary
Способ 2: одноразовые Если выписка
Как и в предыдущем методе, вы хотите установить значение х
к 42
Если Boo
это Правда
и ничего не делайте иначе. Но вы не хотите иметь избыточную ветку. Как это сделать в Python?
Решение для пропуска большей части Темнарного оператора удивительно простой- Используйте стандартное, если заявление без ветки и записать его в одну строку кода :
if boo: x = 42
Чтобы узнать больше о том, что вы можете упаковать в одну строку, наблюдать за моим учебным видео «если-то-то в одной линии Python»:
Метод 3: Темного синтаксиса кортежа
Снарядная форма тройного оператора является следующим синтаксис кортежей Отказ
Синтаксис : Вы можете использовать синтаксис кортежа (X, Y) [C]
состоящий из кортежа (х, у)
и состояние C
заключенный в квадратный кронштейн. Вот более интуитивный способ представить этот синтаксис кортежа.
(, )[ ]
Возврат экспрессии оператора в случае, если условие оценивается к истинному | |
Условие, которое определяет, нужно ли возвращать или ветку. | |
Возврат экспрессии оператора в случае, если условие оценивает ложь |
На самом деле, порядок
и
Операнды просто перевернуты по сравнению с основным тройным оператором. Во-первых, у вас есть ветвь, которая возвращается, если состояние не удерживается. Во-вторых, вы запускаете ветку, которая возвращается, если удерживается состояние.
x = (x, 42)[boo]
Умный! Состояние Boo
Держит, поэтому возвращаемое значение передается в х
Переменная – это
филиал 42
Отказ
Не волнуйтесь, если это смущает тебя – ты не одинок. Вы можете уточнить синтаксис кортежа один раз и для всех, изучая мой подробный блог.
Связанная статья : Ternary Python – синтаксис кортежа
Python One-Liners Книга
Python Programmemers улучшит свои навыки информатики с этими полезными одноклассниками.
Python One-listers научит вас читать и писать «одноклассники»: краткие заявления полезных функций, упакованных в одну строку кода. Вы узнаете, как систематически распаковать и понимать любую строку кода Python и писать красноречие, мощно сжатый Python, как эксперт.
Пять главных глав на пять глав обложки советы и трюки, регулярные выражения, машинное обучение, самые темы науки о данных и полезные алгоритмы. Подробные объяснения одноклассников вводят ключевые концепции компьютерных наук и повысить ваши кодировки и аналитические навыки. Вы узнаете о продвинутых функциях Python, такие как понимание списка, нарезки, нарезки, функции лямбда, регулярные выражения, карта и уменьшения функций и нарезки нарезки. Вы также узнаете, как:
• Используйте структуры данных для решения проблем реальных проблем, например, использование булевой индексации для поиска городов с загрязнением выше среднего • Используйте Numpy Основы, такие как массив, форма, ось, тип, вещание, расширенная индексация, нарезка, сортировка, поиск, агрегация и статистика • Рассчитайте базовую статистику многомерных массивов данных и алгоритмы K-означает для безоговорочного обучения • Создайте более усовершенствованные регулярные выражения с помощью группировки и названных групп, отрицательные LookAeads, сбежавшие символы, пробелы, наборы символов (и наборы отрицательных символов) и жадные/негридические операторы • Понимать широкий ассортимент темы компьютерных наук, включая анаграммы, палиндромы, сверты, перестановки, факториалы, простые числа, цифры фибоначчи, обфускации, поиск и алгоритмическую сортировку
К концу книги вы узнаете, как писать Python в его самых утонченных, и создавать краткие, красивые куски «Python Art» в простой строке.
Получите свой Python One-Liners сейчас !!
Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.
Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python одноклассники (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.
Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.
Оригинал: “https://blog.finxter.com/python-one-line-conditional-assignment/”