reklama

Pole a seznamy jsou jedny z nejužitečnějších datových struktur v programování - i když je jich jen málo lidí plně využívá. Dnes si promluvím základy, spolu s několika jednoduchými příklady Pythonu.

Předpoklady

Není toho mnoho, co byste měli vědět předem, abyste se mohli naučit tyto pojmy. Budou užitečné základní znalosti programovacích paradigmat a Pythonu, ale není to nutné. Přečtěte si naše základní příklady Pythonu 10 základních příkladů Pythonu, které vám pomohou rychle se učitTento článek základních příkladů pythonu je určen těm, kteří již mají zkušenosti s programováním a chtějí jednoduše přejít na Python co nejrychleji. Přečtěte si více pokud nevíte, kde začít. Pokud si myslíte, že Python je k ničemu, podívejte se na náš důvody, proč tomu tak není 5 důvodů, proč není Python programování zbytečnéPython - Buď to miluješ, nebo ho nenávidíš. Můžete se dokonce houpat z jednoho konce na druhý jako kyvadlo. Bez ohledu na to, Python je jazyk, o kterém je těžké být ambivalentní. Přečtěte si více .

instagram viewer

Zatímco následující základní myšlenky lze použít na jakýkoli jazyk, ukážu příklady v Pythonu. Je to snadný jazyk pro učení a poskytuje vynikající platformu pro pochopení toho, co se děje. Kromě toho, tutorialspoint.com poskytuje vynikajícího online tlumočníka Pythonu - nemusíte ani instalovat Python, pokud si to nepřejete (pokud ano, podívejte se na náš průvodce virtuálním prostředím Naučte se, jak používat virtuální prostředí PythonAť už jste zkušený vývojář Pythonu, nebo právě začínáte, naučit se, jak nastavit virtuální prostředí, je pro každý projekt Python zásadní. Přečtěte si více ).

Datové struktury

Co je to? datová struktura? Na své nejzákladnější úrovni je datová struktura způsobem účinného ukládání dat. Je snadné se zmást, protože datové struktury nejsou typy dat. Typy dat sdělují kompilátoru (nebo v případě Pythona interpretovi), jak mají být data použita. Datové struktury specifikují operace, které lze provádět, a často implementují specifická pravidla a předpisy.

Možná jste o něčem slyšeli lineární datové typy (prvky jsou sekvenční):

  • Pole
  • Matrice
  • Vyhledávací tabulka

Podobně, seznamy často obsahují pravidla a metody pro regulaci jejich fungování. Některé běžné seznamy jsou:

  • Spojový seznam
  • Seznam dvojitě propojených
  • Seznam polí nebo dynamické pole

Existuje celá řada různých datových struktur. Možná jste už slyšeli binární stromy, grafy, nebo hashe. Dnes budu diskutovat o základech, ale možná budete chtít dozvědět více, jakmile budete spokojeni.

Pole

Začněme od začátku. Pole je jednoduchá sbírka (souvisejících) hodnot. Tyto hodnoty se nazývají prvky. Většinou to může být jakýkoli typ dat, který se vám líbí, včetně objektů nebo jiných seznamů! Hlavní upozornění s poli je, že všechna data musí být stejná - nemůžete ukládat smíšené řetězce a celá čísla. Vy téměř vždy musíte určit, kolik prvků chcete uložit. Variabilní velikost nebo dynamická pole existují, ale pole s pevnou délkou je jednodušší začít.

Python věci poněkud komplikuje. Je to pro vás velmi snadné, ale ne vždy se drží přísných definic datových struktur. Většina objektů v Pythonu jsou obvykle seznamy, takže vytvoření pole je ve skutečnosti více práce. Zde je nějaký startovací kód:

z pole pro import pole. čísla = pole ('i', [2, 4, 6, 8]) tisknout čísla [0]

První řádek importuje pole modul - to je vyžadováno pro práci s poli. Druhý řádek vytvoří nové pole s názvem čísla a inicializuje ji hodnotami 2, 4, 6 a 8. Každému prvku je přiřazen znak celé číslo hodnota zvaná a klíč nebo index. Klíče začínají na nula, tak čísla [0] zpřístupní první prvek (2):

Pole Python

Možná vás zajímá, co "Já" se používá pro. Toto je typový kód to říká Pythonu, že pole bude ukládat celá čísla. Taková věc by v Pythonu za normálních okolností nepotřebovala (považovala by se za „netyponickou“). Důvod je jednoduchý. Pole v Pythonu jsou velmi tenký obal na základních polích C vašeho operačního systému. To znamená, že jsou rychlé a stabilní, ale nemusí vždy dodržovat syntaxi Pythonu.

Do těchto polí nelze ukládat smíšené typy. Řekněme, že jste chtěli uložit řetězec „makeuseof.com“:

čísla = pole ('i', [2, 4, 6, "makeuseof.com"]))

To nebude povoleno a vyvolá výjimku:

Pole Python

Zde můžete vytisknout všechny prvky:

tisk čísel
Pole Python

Tento způsob přístupu k prvkům pole funguje dobře a je ideální pro správný úkol. K čemu to není dobré, je přístup k celé řadě. Programátoři jsou ze své podstaty líní, takže ráda napíšu více, lepší kód, pokud to znamená, že mohu usnadnit údržbu a snížit úsilí při kopírování a vkládání.

Každý programovací jazyk bude implementovat smyčku nějakého druhu, která je ideální pro iteraci (opakování) nad elementy seznamu. Nejběžnější smyčky jsou zatímco a pro. Python dělá věci ještě jednodušší poskytnutím pro v smyčka:

pro číslo v číslech: vytiskněte číslo

Všimněte si, jak jste nemuseli přistupovat k prvkům pomocí jejich klíče. Toto je mnohem lepší způsob práce s maticí. Alternativní způsob, jak iterovat přes seznam, je pro smyčka:

pro i v rozsahu (len (čísla)): tisknout čísla [i]

To dělá přesně to samé jako v předchozím příkladu, přestože jste museli určit počet prvků v poli (len (auta)), spolu s projížděním i jako klíč k poli. To je téměř přesně ten kód pro v smyčky běží. Tento způsob poskytuje o něco větší flexibilitu a je o něco rychlejší (i když pro v smyčky jsou více než dostatečně rychlé většina času.)

Seznamy

Nyní, když víte, jak pole fungují, pojďme se podívat na seznam. Někdy to může být matoucí, protože lidé používají různé terminologie zaměnitelně a seznamy jsou pole... druh.

Seznam je speciální typ pole. Největší rozdíl je v tom, že seznamy mohou obsahovat smíšený typy (pamatujte, pole musí obsahovat prvky stejného typu). Seznamy jsou v Pythonu velmi snadné:

cars = ['Ford', 'Austin', 'Lancia']

Všimněte si, jak nemusíte importovat pole modul?

Tato syntaxe deklaruje seznam nazvaný auta. Uvnitř hranatých závorek je deklarován každý prvek seznamu. Každý prvek je oddělen čárkou a protože je každý řetězec, deklarujete je uvnitř uvozovek. Python ví, že se jedná o objekt, takže vytisknout příkaz vydá obsah seznamu:

tisk aut
Pole Python

Stejně jako u pole můžete iterovat prvky seznamu pomocí smyček:

pro auto v autech: tisk auto
Pole Python

Skutečný party trik seznamů je jejich smíšený typ. Pokračujte a přidejte další data:

cars = ['Ford', 'Austin', 'Lancia', 1, 0,56]

Pro Python to není žádný problém - nevznikla ani výjimka:

Pole Python

Je snadné přidat do seznamu nové prvky (u polí není možné):

cars = ['Ford', 'Austin'] tisk aut. cars.append („Lancia“) tisk aut
Pole Python

Můžete také sloučit dva seznamy do jednoho:

cars = ['Ford', 'Austin'] tisk aut. other_cars = ['Lotus', 'Lancia'] cars.extend (other_cars) tisk aut
Pole Python

Je stejně snadné odstranit prvky pomocí odstranit syntax:

cars = ['Ford', 'Austin', 'Lotus', 'Lancia'] tisk aut. cars.remove („Ford“) tisk aut
Pole Python

To se týká základů seznamů a polí v Pythonu. Proč nezvažovat kódovací projekt, jako je čtení a zápis do Tabulek Google Jak číst a zapisovat do Tabulek Google s PythonemPython se může zdát podivný a neobvyklý, je však snadné ho naučit a používat. V tomto článku vám ukážu, jak číst a psát do Tabulek Google pomocí Pythonu. Přečtěte si více , čtení dat json Jak získat Python a JavaScript pro komunikaci pomocí JSONDnes vám ukážu, jak pomocí JSON odesílat data z JavaScriptu do Pythonu. Pokryju, jak nastavit webový server, spolu se všemi potřebnými kódy. Přečtěte si více . Možná byste mohli dát své nové dovednosti k využití některých vlastní tlačítka zástupců Vytvořte si vlastní tlačítka zástupců pomocí ArduinoPokorný Arduino dokáže dělat spoustu věcí, ale věděli jste, že dokáže napodobit klávesnici USB? S tímto jednoduchým obvodem byste mohli spojit dlouhé klávesové zkratky do jednoho vlastního klávesového zkratky. Přečtěte si více . Přestože se jedná o odlišný programovací jazyk, tyto zásady pole stále platí.

Naučili jste se něco nového? Chtěli byste vidět nějaký komplikovanější obsah? Sdělte nám své myšlenky v komentářích níže!

Joe je absolventem informatiky na University of Lincoln ve Velké Británii. Je to profesionální softwarový vývojář, a když nelétá dronů nebo píše hudbu, často ho najde, když fotografuje nebo produkuje videa.