Problém: Jak provádět jednořádkové podmíněné přiřazení if v jazyce Python?

Příklad:

x = 2boo = True

Chcete nastavit hodnotu x na 42, pokud boo je True, a jinak neudělat nic.

Ponořme se do různých způsobů, jak toho v jazyce Python dosáhnout. Začneme přehledem:

Cvičení: Spusťte kód. Jsou všechny výstupy stejné?“

Příště se ponoříte do každé z těchto metod a zvýšíte svou superschopnost při psaní jednoho řádku!“

Obsah

Metoda 1: Ternární operátor

Nejzákladnější ternární operátor x if c else y vrací výraz x, pokud se logický výraz c vyhodnotí jako True. V opačném případě, pokud se výraz c vyhodnotí jako False, vrátí ternární operátor alternativní výraz y.

<OnTrue> if <Condition> else <OnFalse>
Operand Popis
<OnTrue> Vracející výraz operátoru v případě, že je v operátoru podmínka vyhodnotí jako True
<Podmínka> Podmínka, která určuje, zda se vrátí větev <On True> nebo <On False>.
<OnFalse> Vratný výraz operátoru v případě, že se podmínka vyhodnotí jako False
Příkazy ternárního operátoru

Vraťme se k naší ukázkové úloze! Chcete nastavit hodnotu x na 42, pokud boo je True, a v opačném případě neudělat nic. Zde je návod, jak to provést na jediném řádku:

x = 42 if boo else x

Přestože použití ternárního operátoru funguje, možná vás napadne, zda by nebylo možné se kvůli přehlednosti kódu vyhnout části ...else x? V dalším postupu se dozvíte jak!

Pokud potřebujete zlepšit své znalosti ternárního operátoru, podívejte se na následující video:

Můžete si také přečíst související článek:

  • Python One Line Ternary

Metoda 2: Jednořádkový příkaz If

Stejně jako v předchozí metodě chcete nastavit hodnotu x na 42, pokud boo je True, a jinak nedělat nic. Nechcete však mít zbytečnou větev else. Jak to udělat v jazyce Python?

Řešení, jak vynechat část else ternárního operátoru, je překvapivě jednoduché – použijte standardní příkaz if bez větve else a zapište jej do jediného řádku kódu:

if boo: x = 42

Chcete-li se dozvědět více o tom, co všechno můžete nacpat do jediného řádku, podívejte se na mé výukové video „If-Then-Else in One Line Python“:

Metoda 3: Hack syntaxe trojčlenky

Syntaxe trojčlenky v jazyce Python

Zkrácenou formou operátoru trojčlenky je následující syntaxe trojčlenky.

Syntaxe: Můžete použít syntaxi tuple (x, y) skládající se z tuple (x, y) a podmínky c uzavřené v hranaté závorce. Zde je uveden intuitivnější způsob reprezentace této syntaxe tuple.

(<OnFalse>, <OnTrue>)
Operand Popis
<OnTrue> Vracející výraz operátoru v případě, že je podmínka vyhodnotí jako True
<Podmínka> Podmínka, která určuje, zda se vrátí větev <On True> nebo <On False>.
<OnFalse> Vratný výraz operátoru v případě, že podmínka vyhodnotí False
Syntaxe ternárního operátoru

V podstatě, pořadí operandů <OnFalse> a <OnTrue> je ve srovnání se základním ternárním operátorem pouze převrácené. Nejprve máte větev, která je vrácena, pokud podmínka NEplatí. Za druhé spustíte větev, která je vrácena, pokud podmínka platí.

x = (x, 42)

Chytré! Podmínka boo platí, takže návratová hodnota předaná do proměnné x je větev <OnTrue> 42.

Nebojte se, pokud vás to zmátlo – nejste sami. Syntaxi tuple si můžete jednou provždy ujasnit prostudováním mého podrobného článku na blogu.

Související článek: Python Ternary – Tuple Syntax Hack

Kniha Python One-Liners

Programátoři v Pythonu si díky těmto užitečným jednořádkovým příkazům zlepší své informatické dovednosti.

Python One-Liners

Python One-Liners vás naučí číst a psát „jednořádkové příkazy“: stručné příkazy užitečné funkce zabalené do jediného řádku kódu. Naučíte se, jak systematicky rozbalit a pochopit jakýkoli řádek kódu Pythonu a psát výmluvný, výkonně komprimovaný Python jako odborník.

Pět kapitol knihy se zabývá tipy a triky, regulárními výrazy, strojovým učením, základními tématy datové vědy a užitečnými algoritmy. Podrobné vysvětlení jednořádkových příkladů vás seznámí s klíčovými pojmy informatiky a posílí vaše kódovací a analytické dovednosti. Seznámíte se s pokročilými funkcemi jazyka Python, jako je chápání seznamů, řezání, lambda funkce, regulární výrazy, funkce map a reduce a přiřazování řezů. Naučíte se také, jak:

– Využívat datové struktury k řešení reálných problémů, například pomocí booleovského indexování najít města s nadprůměrným znečištěním
– Používat základy NumPy, jako je pole, tvar, osa, typ, vysílání, pokročilé indexování, řezání, třídění, vyhledávání, agregace a statistika
– Počítat základní statistiky vícerozměrných datových polí a algoritmy K-Means pro neřízené učení
– Vytvářet pokročilejší regulární výrazy pomocí seskupování a pojmenovaných skupin, záporných hlaviček, escapovaných znaků, bílých znaků, množin znaků (a množin záporných znaků) a greedy/nongreedy operátorů
– Porozumět široké škále informatických témat, včetně anagramů, palindromů, supersetů, permutací, faktoriály, prvočísla, Fibonacciho čísla, zastírání, vyhledávání a algoritmické třídění

Na konci knihy budete umět psát jazyk Python co nejdokonaleji a vytvářet stručná, krásná díla „umění Pythonu“ na pouhém jednom řádku.

Získejte jednořádkový Python hned teď!!!

Při práci výzkumníka v oblasti distribuovaných systémů našel Dr. Christian Mayer zálibu ve výuce studentů informatiky

Aby pomohl studentům dosáhnout vyšší úrovně úspěchu v Pythonu, založil webovou stránku Finxter.com zaměřenou na výuku programování. Je autorem populární knihy o programování Python One-Liners (NoStarch 2020), spoluautorem série knih Coffee Break Python vydaných vlastním nákladem, nadšencem do informatiky, pracovníkem na volné noze a majitelem jednoho z deseti největších blogů o Pythonu na světě.

Jeho vášní je psaní, čtení a programování. Jeho největší vášní je však sloužit začínajícím programátorům prostřednictvím Finxteru a pomáhat jim zvyšovat jejich dovednosti. Do jeho bezplatné e-mailové akademie se můžete přihlásit zde.

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.