Seznamy Pythonu jsou objednané sbírky. Jsou důležitou součástí programového kódu. Seznamy se týkají vložených jazykových objektů. S jejich pomocí můžete rychle a efektivně zpracovat velké množství informačních a datových struktur libovolné složitosti.
Vlastnosti a funkce seznamu objektů
Seznamy jsou flexibilní a variabilní typ dat. Mohou být libovolné délky a obsahovat neomezené množství informací. Jako prvky sekvence je povoleno používat řetězce, jednoduchá a platná čísla, slovníky. Každý seznam proměnných v Pythonu může být individuálně zpracován, smazán nebo nahrazen. Seznam obsahuje určitou sadu vlastností, která je odlišuje od jiných typů dat:
Jedná se o skupiny objektů s uspořádaným polohováním zleva doprava.
Seznamy poskytují přístup k posunu, tj. Číslo objektu.
Seznamy Pythonu mají heterogenitu. Sekvence může obsahovat objekty různých typů, včetně čísel, mapování, řádků, souborů.
Seznamy patří do kategorie variabilních objektů s neomezeným počtem hnízd.
Seznamy mohou být zaměněny za související datové struktury. Ve skutečnosti jsou však odkazy na předměty, nikoli jejich kopie. Jsou jako adresář. Všechny položky v seznamu ukazují na místo, kde se nachází požadovaný objekt. V tomto seznamu je Python podobný řadám jazyků jazyka C, ale je implementován v tlumočníku.
Základní operace sekvencí
Formálně existují tři jazykové kategorie. Tato čísla jsouzobrazení a sekvence, které obsahují seznam typů. Pro každou skupinu existuje obecný soubor operací. Například přidat, odečíst a množit číselné objekty nebo klíčový přístup k slovníkům.
Sekvence mají také své charakteristické operace:
přístup k prvku pomocí celočíselných indexů __getitem __ ();
Určení délky __len __ ();
zřetězení pomocí operátora "+";
Vyjmutí řezu [:].
Seznamy v akci
Seznamy mají širší škálu funkcí než řetězce v Pythonu. Jedná se o výkonný vývojový nástroj s řadou specifických funkcí, které se vztahují pouze na seznam typů. Jak vypadá seznam metod v praxi:
můj seznam = [jeden, dva, tři] # vytvoření nového seznamu;
můj seznam;
["jeden", "2", "tři"];
len (moje záznamy);
3 # tlumočník vrátí délku;
můj seznam [+ 1, 2, 3] # zřetězení;
[jedna, dvě, tři, jedna, dvě, tři];
můj seznam * 2 # opakování;
[jedna, dvě, tři, jedna, dvě, tři].
[1, 2, 3] + 314 # TypeError: může pouze zřetězit seznam (ne " float ») do seznamu.Pro sestavení řetězce a seznamu v Pythonu musíte provést předchozí transformaci typu str:
second_list = seznam ("string") # konverze objektu "string";
Při vytváření seznamu v Pythonu musíte dodržovat přísná pravidla pro syntaxi. Každý objekt musí být přiložen do hranatých závorek a prvky jsou odděleny čárkami.
Co je iterační a generátory seznamu?
Iterace je opakovací proces. V kontextu seznamů je to postupný pokrok na prvcích iterovaného objektu. Například:
3 v [1, 2, 3] # zkontroluje, zda je zadaná položka zahrnutá;
Pravda;
pro x v [1, 2, 3, 4]: # provedete iteraci;
tisk (x);
1;
2;
3;
4.
Pokud je iterace jednoduše obtokem každého prvku, pak generace je proces vytváření nového objektu typu seznamu. V Pythonu jsou generátory seznamu podobné smyčkám, ale pracují rychleji a vypadají mnohem snazší syntaxi:
List_1 = [c * 4 pro c v "SPAM"] # vypadá jako generace;
List_1;
["SSSS", "PPPP", "AAAA", "MMMM");
Seznam_2 = [];
pro c v "SPAM": # podobný generačnímu příkazu;
List_2.append (c * 4) # seznam.append () přidává nové položky;
Seznam_2;
["SSSS", "PPPP", "AAAA", "MMMM").
V obou příkladech je výsledek identický. Ale s využitím generátoru je kód mnohem kratší a jednodušší. Tento přístup je plně v souladu s Zenem Pythonu. Jedná se o zen, nebo kód jazyka, ve kterém jeden z bodů uvedl: "Je snadnější skládat snadněji."
Výřez výřezu a přístup k indexům
Tyto dvě operace jsou celkem podobné a umožňují zpracovat jednotlivé položky v seznamu v Pythonu. Ale je zde značný rozdíl. V důsledku indexace je vrácena samostatná část sekvence. Rozkroj řezu vytvoří nový objekt
Seznam1 [spam, spam, spam!]
List1
# offset countdown starts from scratchSPAM!
List1 [-2] # negativní posunutí: odvozeno vpravo
"Spam"
65)
Jak funguje extrakce řezu a jeho možnosti?
Jazykové konstrukce umožňují nejen přijímat, ale také modifikovat jednotlivé prvky a dát jim nové významy. V důsledku toho vrací stejný seznam pouze z jiné proměnné. Tato operace je podobná přiřazení indexem v jazyce C. Interpret nahrazuje starý odkaz na nový zadaný objekt v posunu:
my_list = [jeden, osm, sto];
můj seznam [0: 2] = [devadesát osm, devadesát devět];
můj záznam;
["devadesát osm", "devadesát devět", "sto"].
Jedná se o poměrně komplikovanou operaci, která se odehrává v několika fázích. Za prvé, tlumočník vymaže všechny prvky na levé straně operátora. V tomto příkladu je to "jeden" a "osm". Pak jsou všechny objekty vpravo od operátora vloženy do seznamu, začínající od levého okraje. Popsaný proces poskytuje flexibilní práci s řezy. Číslo je smazáno a přidané položky se mohou lišit. Tato operace je vhodná pro odstraňování a nahrazování objektů, stejně jako pro rozšiřování seznamů. Jedná se o účinný způsob zpracování kódu. Ale programátoři zřídka používají to v praxi, preferují jednodušší pokyny vložte, pop a odstraňte.
Specifické metody objektů seznamu typů
Mostmetody nebo funkce zaměřené na přímou změnu objektu. Nejběžnější je .append (). Přidává položky na konec seznamu:
my_L = ["I", "láska", "program", "on"];
my_L;
["I", "láska", "program", "on"];
my_L.append ("Python") # přidá prvek specifikovaný v závorkách;
my_L;
["já", "láska", "program", "on", "Piton"].
Další, stejně populární metoda se nazývá sort (). Určeno pro třídění seznamů v Pythonu. Metoda provádí změnu prvků pomocí standardních porovnávacích operátorů. Může být také použit pro složitější úkoly s použitím pojmenovaných argumentů:
L = ["abc", "ABD", "aBe"];
Odrůda L. (klíč = str.lower, reverzní = True) # Změní směr řazení;
L;
["aBe", "ABD", "abc"].
V příkladu byl syntaktický konstrukt "name = value" použit pro předání konfiguračních parametrů. Klíčový argument umožňuje určit vlastní parametry pro porovnání. V tomto případě jsou to prvky malého písmene. Zvrat znamená "naopak", tedy spíše v sestupném pořadí než v růstu.
Metody podvodních kamenů
Při práci s těmito metodami je třeba vzít v úvahu následující funkce: .sort () .append () upravuje seznam, ale nevrací jej. Design my list = List.sort () nemá význam a výsledek. Proto v posledních verzích jazyka vývojáři představili funkci sort (), která přebírá seznam jako argument:
Python nabízí další metody pro zpracování specializovaných seznamů. Chcete-li například změnit pořadí následujících položek pomocí obráceně. Rozšířte a pop metody, chcete-li vložit více položek do konce nebo je odstranit. K dispozici je také obrácená funkce, která se podobá tříděnému, ale používá se prostřednictvím seznamu volání:
L;
[4, 3, 2, 1];
seznam (obrácený (L)) # integrovaná funkce třídění v opačném pořadí;
[1, 2, 3, 4].
Všechny považované transakce se nejčastěji používají pro seznamy a jsou základní. Existují však vysoce specializované metody. Například .copy (), který vytvoří povrchovou kopii objektu a .count (), který vrací počet položek. Chcete-li zobrazit všechny dostupné funkce Pythonu, které se vztahují k objektu seznamu, musíte zadat pomocník () nebo dir () v interpretovi.