Programování Pythonu. Seznam v Pythonu: základní operace

1. 3. 2020

V Pythonu jsou seznamy objednané sbírky. Jsou důležitou součástí programového kódu. Seznamy se týkají vestavěných jazykových objektů. S jejich pomocí můžete rychle a efektivně zpracovávat velké množství informačních a datových struktur libovolné složitosti. Seznam pythonů

Vlastnosti a vlastnosti objektu seznamu

Seznamy jsou flexibilní a měnitelné. 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 reálná čísla, slovníky. Každá proměnná seznamu v Pythonu je samostatně zpracovatelná, odstraněna nebo nahrazena.

Seznamy mají specifickou sadu vlastností, která je odlišují od ostatních datových typů:

  • Jedná se o skupiny objektů s uspořádaným polohováním zleva doprava.
  • Seznamy poskytují přístup posunutím, tj. Číslem objektu.
  • V Pythonu jsou seznamy heterogenní. Sekvence může obsahovat objekty různých typů, včetně čísel, map, řetězců, souborů.
  • Seznamy jsou kategorizovány jako vyměnitelné objekty s neomezeným počtem vnoření.

Seznamy lze zaměnit za související struktury dat. Ve skutečnosti jsou však kontejnery odkazů na objekty, nikoli jejich kopie. Jsou jako adresář. Všechny prvky seznamu ukazují na umístění požadovaného objektu. V tomto seznamu Python jsou podobné polím C, ale jsou implementovány v tlumočníku. python string

Základní sekvenční operace

Formálně existují tři kategorie dat v jazyce. Jedná se o čísla, mapy a sekvence, ke kterým patří typ seznamu. Pro každou skupinu existuje společný soubor operací. Například přidání, odečítání a násobení číselných objektů nebo přístup na klíč k slovníkům.

Sekvence mají také své charakteristické operace:

  • přístup k prvkům pomocí indexů celé __getitem __ ();
  • určení délky __len __ ();
  • zřetězení pomocí operátoru "+";
  • extrakční řez [:].

Seznamy v akci

Seznamy mají širší škálu možností než řetězce Pythonu. Jedná se o výkonný vývojový nástroj s řadou specifických funkcí platných pouze pro typový seznam.

Jak vypadají metody seznamu v praxi:

  • >>> my_list = ["jeden", "2", "tři"] # vytvořit nový seznam;
  • >>> my_list;
  • ["Jeden", "2", "tři"];
  • >>> len (my_list);
  • 3 # interpret vrátí délku;
  • >>> my_list + [1, 2, 3] # provádět zřetězení;
  • ["Jeden", "2", "tři", 1, 2, 3];
  • >>> my_list * 2 # opakování;
  • ["Jeden", "2", "Tři", "Jeden", "2", "Tři"].

Při provádění zřetězení na každé straně znaménka "+" musí být nalezeny sekvence stejného typu, jinak se tlumočník zobrazí chybová zpráva:

  • >>> [1, 2, 3] + 3.14 # TypeError: může seznam pouze zřetězit (ne "float").

Chcete-li přidat řetězec a seznam v Pythonu, musíte provést předběžnou konverzi pro typ str:

  • >>> second_list = seznam ("string") # transformovat objekt "string";
  • >>> second_list;
  • ["S", "t", "p", "o", "k", "a"] # seznam tlumočníků vrátí;
  • >>> second_list + my_list;
  • ["S", "t", "p", "o", "k", "a", "jedna", "2", "tři"].

Při vytváření seznamu v Pythonu musíte dodržovat přísná pravidla syntaxe. Každý objekt musí být přiložen do hranatých závorek a položky jsou odděleny čárkami. seznam třídění pythonu

Co je to generátor iterací a seznamů?

Iterace je proces opakování. V kontextu seznamů je to alternativní postup přes prvky iterovaného objektu. Například:

  • >>> 3 v [1, 2, 3] # zkontrolujte, zda je zadaná položka zahrnutá;
  • Pravda;
  • >>> pro x v [1, 2, 3, 4]: # provedete iteraci;
  • tisk (x);
  • 1;
  • 2;
  • 3;
  • 4

Pokud iterace je pouze průchodem každého prvku, pak generace je proces vytváření nového objektu typu seznamu. V Pythonu vypadají generátory seznamu jako smyčky, ale pracují rychleji a syntakticky vypadají mnohem jednodušší:

  • >>> List_1 = [c * 4 pro c v "SPAM"] # takto vypadá generace;
  • >>> List_1;
  • ["SSSS", "PPPP", "AAAA", "MMMM");
  • >>> Seznam_2 = [];
  • >>> pro c v "SPAM": # podobný generační příkaz;
  • List_2.append (c * 4) # seznam.append () přidává nové prvky;
  • >>> Seznam_2;
  • ["SSSS", "PPPP", "AAAA", "MMMM").

V obou příkladech je výsledek identický. Ale pomocí generátoru je kód mnohem kratší a jednodušší. Tento přístup je plně v souladu se Zenem Pythonu. Toto je Zen, nebo kód jazyka, ve kterém jeden z bodů zní: "Jednoduchý je lepší než komplikovaný" generátor seznamu pythonů

Extrakce řezů a přístup k indexům

Tyto dvě operace mají podobný vzhled a umožňují zpracovávat jednotlivé položky seznamu v Pythonu. Ale je zde značný rozdíl. V důsledku indexování se vrátí samostatná část sekvence. A extrahováním řezu vytvoří nový objekt seznamu:

  • >>> List1 = ["spam", "Spam", "SPAM!"]
  • >>> List1 [2] # offset začíná od nuly
  • "SPAM!"
  • >>> List1 [-2] # negativní posun: počítáno zprava
  • Spam
  • >>> Seznam [1:] # operace extrakce řezu vrátí úseky objektu
  • ["Spam", "SPAM!"]

Jak funguje extrakce řezu a jeho možnosti

Jazykové konstrukce umožňují nejen extrahovat, ale také měnit jednotlivé prvky a přiřazovat jim nové hodnoty. V důsledku toho se stejný seznam vrátí pouze s jinou proměnnou. Tato operace je podobná přiřazení na index v jazyce C. Interpret nahrazuje starý odkaz na objekt zadaný v offsetu novým:

  • >>> my_list = ["jeden", "osm", "sto"];
  • >>> my_list [0: 2] = ["devadesát osm", "devadesát devět"];
  • >>> my_list;
  • ["Devadesát osm", "devadesát devět", "sto"].

Jedná se o poměrně komplikovanou operaci, která se objevuje v několika fázích. Nejprve interpret vymaže všechny prvky nalevo od 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. Počet prvků, které chcete odstranit a přidat, se může lišit. Tato operace je vhodná pro odstraňování a nahrazování objektů, stejně jako pro rozšiřování seznamů. To je docela silný způsob, jak zvládnout kód. Ale programátoři zřídka používají v praxi, preferují jednodušší vložení, pop a odstraňování instrukcí. Seznam funkcí pythonu

Specifické metody objektů seznamu typů

Většina metod nebo funkcí je zaměřena 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;
  • ["Já", "láska", "program", "on"];
  • >>> my_L.append ("Python") # přidá prvek specifikovaný v závorkách;
  • >>> my_L;
  • ["Já", "láska", "program", "on", "Python"].

Další stejně populární metoda se nazývá sort (). Určeno pro třídění seznamů v Pythonu. Metoda přepíše prvky pomocí standardních porovnávacích operátorů. Může být také použit pro složitější úlohy pomocí pojmenovaných argumentů:

  • >>> L = ["abc", "ABD", "aBe");
  • >>> L.sort (key = str.lower, reverse = True) # Změní směr třídění;
  • >>> L;
  • ["ABe", "ABD", "abc"].

Příklad použil syntaxi "name = value" pro předání nastavení. Klíčový argument umožňuje nastavit vlastní parametry pro porovnání. V tomto případě jsou to prvky s malým písmem. Reverzní znamená "opak", tedy sestupně, nezvyšuje se. vytvoření seznamu pythonů

Metody úskalí

Při práci s těmito metodami je třeba zvážit následující funkce: .sort () a .append () změnit seznam, ale nevrátí jej. Konstrukce my_list = List.sort () nemá žádný význam ani výsledek. Proto v posledních verzích jazyka vývojáři zavedli funkci sort (), která má jako argument argument:

  • >>> my_list = [1, 100, 56, 34, 2, 99];
  • >>> double_list = my_list.sort ();
  • >>> double_list # interpreter nevrací nic;
  • >>> my_list;
  • [1, 2, 34, 56, 99, 100];
  • >>> double_list = tříděný (my_list);
  • >>> double_list;
  • [1, 2, 34, 56, 99, 100] # interpret vrátí tříděnou kopii objektu.

Další metody

Python poskytuje další metody pro zpracování specializovaného seznamu. Například obráceně se používá pro změnu pořadí prvků. Chcete-li vložit více prvků na konci nebo odstranit, potřebujete rozšířit a pop metody. K dispozici je také obrácená funkce, která se podobá tříděnému, ale používá se prostřednictvím volání seznamu:

  • >>> 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é operace jsou nejčastěji používané na seznamy a jsou základní. Existují však vysoce specializované metody. Například .copy (), který vytváří plytké kopie objektu a .count (), který vrací počet prvků. Chcete-li zobrazit celý seznam funkcí dostupných v Pythonu, které jsou použitelné na objekt seznamu, musíte zadat pomocníka () nebo dir () do interpretace.