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 |
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
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 |
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 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.
.