Ako polia a zoznamy fungujú v Pythone

Ako polia a zoznamy fungujú v Pythone

Polia a zoznamy sú niektoré z najužitočnejších dátových štruktúr v programovaní - aj keď ich len málo ľudí skutočne využíva na plný potenciál. Dnes vám poviem základy, spolu s niekoľkými jednoduchými príkladmi v jazyku Python.





Predpoklady

Nie je toho veľa, čo by ste museli vopred vedieť, aby ste sa tieto pojmy naučili. Základné znalosti programovacej paradigmy a Pythonu budú užitočné, ale nie sú potrebné. Prečítajte si náš základné príklady Pythonu ak neviete, kde začať. Ak si myslíte, že Python je zbytočný jazyk, pozrite sa na naše dôvody, prečo nie je.





Nasledujúce základné myšlienky je možné použiť v ľubovoľnom jazyku, ale ukážem príklady v Pythone. Je to ľahký jazyk na naučenie a poskytuje vynikajúcu platformu na pochopenie toho, čo sa deje. Navyše, tutorialspoint.com poskytuje vynikajúci online tlmočník Pythonu - Python nemusíte ani inštalovať, ak nechcete (ak tak urobíte, pozrite si nášho sprievodcu virtuálnymi prostrediami).





Dátové štruktúry

Čo je a dátová štruktúra ? Dátová štruktúra je na svojej najzákladnejšej úrovni spôsobom, ako efektívne ukladať údaje. Je ľahké sa nechať zmiasť, pretože dátové štruktúry nie sú dátové typy . Dátové typy informujú prekladača (alebo v prípade Pythonu o tlmočníkovi), ako sú údaje určené na použitie. Dátové štruktúry špecifikujú operácie, ktoré je možné vykonávať, a často implementujú špecifické pravidlá a nariadenia.

Možno ste už o niektorých počuli lineárne dátové typy (prvky sú sekvenčné):



  • Array
  • Matica
  • Vyhľadávacia tabuľka

Podobne zoznamy často obsahujú pravidlá a metódy na reguláciu ich fungovania. Niektoré bežné zoznamy sú:

  • Prepojený zoznam
  • Dvojnásobne prepojený zoznam
  • Zoznam polí alebo Dynamické pole

Existuje veľké množstvo rôznych dátových štruktúr. Možno ste už o tom počuli binárne stromy , grafy , alebo hash . Dnes budem diskutovať o základoch, ale možno sa budete chcieť dozvedieť viac, keď sa budete cítiť pohodlne.





Array

Začnime od začiatku. Pole je jednoduchá zbierka (súvisiacich) hodnôt. Tieto hodnoty sa nazývajú prvky. Obvykle to môže byť akýkoľvek typ údajov, ktorý sa vám páči, vrátane objektov alebo iných zoznamov! Hlavnou výhradou polí je, že všetky údaje musia byť rovnaké - nemôžete ukladať zmiešané reťazce a celé čísla. Ty skoro vždy musíte určiť, koľko prvkov chcete uložiť. Variabilná veľkosť resp dynamické polia existujú, ale polia s pevnou dĺžkou sú na začiatku jednoduchšie.

Python veci trochu komplikuje. Je to pre vás veľmi jednoduché, ale nie vždy sa riadi prísnymi definíciami dátových štruktúr. Väčšina objektov v Pythone sú zvyčajne zoznamy, takže vytvorenie poľa je v skutočnosti viac práce. Tu je nejaký štartovací kód:





from array import array
numbers = array('i', [2, 4, 6, 8])
print(numbers[0])

Prvý riadok importuje súbor pole modul - ten je potrebný na prácu s poľami. Druhý riadok vytvorí nové pole s názvom čísla a inicializuje ho s hodnotami 2, 4, 6 a 8. Každému prvku je priradené an celé číslo hodnota nazývaná a kľúč alebo index . Kľúče začínajú o nula , takže čísla [0] pristupuje k prvému prvku ( 2 ):

Možno sa pýtate, čo to je 'ja' slúži na. Toto je typový kód to hovorí Pythonu, že pole bude ukladať celé čísla. Také veci by v Pythone zvyčajne neboli potrebné (považovalo by sa to za „nepytonické“). Dôvod je jednoduchý. Polia v Pythone sú veľmi tenkým obalom na základných poliach C vášho operačného systému. To znamená, že sú rýchle a stabilné, ale nemusia vždy dodržiavať syntax Pythonu.

ako importovať zoznam skladieb a identifikovať ho

V týchto poliach nemôžete ukladať zmiešané typy. Povedzme, že chcete uložiť reťazec „makeuseof.com“:

numbers = array('i', [2, 4, 6, 'makeuseof.com'])

To nie je povolené a vyvolá výnimku:

Tu je návod, ako môžete vytlačiť všetky prvky:

print(numbers)

Tento spôsob prístupu k prvkom poľa funguje dobre a je ideálny pre správnu úlohu. Na čo to nie je dobré, je prístup k celému poľu. Programátori sú vo svojej podstate leniví, takže s potešením napíšem viac, lepší kód, ak to znamená, že môžem uľahčiť údržbu a obmedziť úsilie pri kopírovaní a vkladaní.

Každý programovací jazyk bude implementovať nejakú slučku, ktorá je ideálna na iteráciu (opakovanie) nad prvkami zoznamu. Najbežnejšie slučky sú kým a pre . Python robí veci ešte jednoduchšie tým, že poskytuje súbor pre v slučka:

for number in numbers:
print(number)

Všimnite si, ako ste nemuseli pristupovať k prvkom podľa ich kľúča. Toto je oveľa lepší spôsob práce s poľom. Alternatívny spôsob iterácie zoznamu je pomocou a pre slučka:

for i in range(len(numbers)):
print(numbers[i])

To robí presne to isté ako v predchádzajúcom prípade, aj keď ste museli určiť počet prvkov v poli ( len(cars) ), spolu s prihrávkou i ako kľúč k poľu. To je takmer presne ten kód, ktorý pre v slučky bežia. Tento spôsob poskytuje o niečo väčšiu flexibilitu a je o niečo rýchlejší (aj keď pre v slučky sú dostatočne rýchle väčšina času.)

Zoznamy

Teraz, keď viete, ako polia fungujú, pozrime sa na zoznam. Niekedy môže byť mätúce, pretože ľudia používajú rôzne terminológie zameniteľne a zoznamy polia ... akési.

Zoznam je špeciálny typ poľa. Najväčší rozdiel je v tom, že zoznamy môžu obsahovať zmiešané typy (pamätajte, polia musia obsahovať prvky rovnakého typu). Zoznamy sú v Pythone veľmi jednoduché:

aplikácia, ktorá vám dá tvár na obrázok
cars = ['Ford', 'Austin', 'Lancia']

Všimnite si, ako nemusíte importovať súbor pole modul?

Táto syntax deklaruje zoznam s názvom autá. V hranatých zátvorkách je uvedený každý prvok zoznamu. Každý prvok je oddelený čiarkou a keďže každý prvok je reťazec, deklarujete ich v úvodzovkách. Python vie, že sa jedná o objekt, takže vytlačiť výpis vydá obsah zoznamu:

print(cars)

Rovnako ako v prípade poľa môžete prvky zoznamu iterovať pomocou slučiek:

for car in cars:
print(car)

Skutočným večierkovým trikom zoznamov je ich zmiešaný typ. Pokračujte a pridajte ďalšie údaje:

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

Pre Python to nie je problém - nevyvolalo to ani výnimku:

Je ľahké pridať nové prvky do zoznamu (čo nie je možné s poliami):

cars = ['Ford', 'Austin']
print(cars)
cars.append('Lancia')
print(cars)

Môžete tiež zlúčiť dva zoznamy do jedného:

cars = ['Ford', 'Austin']
print(cars)
other_cars = ['Lotus', 'Lancia']
cars.extend(other_cars)
print(cars)

Rovnako jednoduché je aj odstránenie prvkov pomocou odstrániť syntax:

cars = ['Ford', 'Austin', 'Lotus', 'Lancia']
print(cars)
cars.remove('Ford')
print(cars)

To sa týka základov zoznamov a polí v Pythone. Prečo neuvažovať o projekte kódovania, ako je čítanie a zápis do Tabuliek Google, čítanie údajov json. Možno by ste mohli uplatniť svoje nové schopnosti pri tvorbe niektorých vlastné tlačidlá skratiek . Napriek tomu, že ide o iný programovací jazyk, tieto zásady poľa stále platia.

zdieľam zdieľam Tweet E -mail 5 tipov, ako nabiť svoje počítače VirtualBox Linux

Ste unavení z nízkeho výkonu, ktorý ponúkajú virtuálne počítače? Tu je to, čo by ste mali urobiť, aby ste zvýšili výkon svojho VirtualBoxu.

Čítajte ďalej
Súvisiace témy
  • Programovanie
  • Programovanie
  • Python
O autorovi Joe Coburn(136 publikovaných článkov)

Joe je absolventom počítačových vied na University of Lincoln, UK. Je profesionálnym softvérovým vývojárom, a keď nelieta s dronmi ani nepíše hudbu, často ho zastihne fotografovanie alebo vytváranie videí.

Viac od Joe Coburn

prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné elektronické knihy a exkluzívne ponuky!

Kliknutím sem sa prihlásite na odber