Ve světě programování často nastávají situace, kdy je potřeba provést určitou operaci na více položkách v seznamu najednou, místo abyste to dělali jednotlivě. Jedním takovým příkladem těchto operací v programování v Pythonu může být odečítání konstanty od každého prvku seznamu. Tento druh operací je běžný při manipulaci s daty a Python, vysoce univerzální a efektivní jazyk, má účinné metody pro zpracování takových operací.
Python, interpretovaný, univerzální programovací jazyk na vysoké úrovni, přichází s množstvím vestavěných a externích metod a knihoven pro zpracování různých operací s daty. Pro odečítání konstanty ze seznamu nabízí Python několik přístupů. Ty se mohou pohybovat od použití základní smyčky for až po použití pokročilých metod z externích knihoven, jako je NumPy.
# Initial List A = [12, 8, 6, 10] # Constant to subtract c = 5 # Using list comprehension B = [i - c for i in A]
Fragment kódu výše nejprve vytvoří seznam „A“ a konstantu „c“, které se odečítají od každého prvku „A“. Potom se použije běžný pythonovský idiom, porozumění seznamu k odečtení `c` od každého prvku v `A`.
Zkoumání porozumění seznamu
Seznam porozumění poskytují stručný způsob vytváření seznamů na základě existujících seznamů. V našem případě jej používáme k vytvoření nového seznamu, který je výsledkem operace (odčítání) aplikované na každého člena existujícího seznamu.
Syntaxe je trochu jako nastavení smyčky, ale vše je na jednom řádku a vytváří nový seznam. Nejzákladnější tvar s našimi proměnnými by byl [výraz(a) pro a v A]. Je celkem jasné, že to vezme každý prvek `a` v seznamu `A` a předá ho `výraz(a)`.
Ale můžeme také přidat podmínku do pochopení seznamu, takže se bude chovat trochu jako kombinace cyklu for a příkazu if.
Použití NumPy pro operace na seznamech
Při práci s velkými datovými sadami může být používání vestavěných metod Pythonu neefektivní. V takových případech Python poskytuje externí knihovny jako nemotorný které jsou speciálně navrženy pro efektivní zpracování velkých dat.
import numpy as np # Using numpy A = np.array(A) B = A - c
Knihovna NumPy poskytuje typ objektu nazývaný pole, který je pro analýzu dat efektivnější a pohodlnější než běžný seznam Pythonu. Pole v NumPy mohou provádět všechny standardní operace, jako je sčítání, odčítání, násobení atd. na všech prvcích najednou, což může ušetřit čas kódování i provádění.