Výukový program pre prázdny zoznam v Pythone - Ako vytvoriť prázdny zoznam v Pythone

Ak sa chcete dozvedieť, ako efektívne vytvoriť prázdny zoznam v Pythone, potom je tento článok určený práve pre vás.

Naučíš sa:

  • Ako vytvoriť prázdny zoznam pomocou hranatých zátvoriek [].
  • Ako vytvoriť prázdny zoznam pomocou list().
  • Prípady ich použitia.
  • Ako efektívne sú (jedno je rýchlejšie ako druhé!). timeitModul použijeme na ich porovnanie.

Poďme začať! ✨

? Používanie hranatých zátvoriek

Môžete vytvoriť prázdny zoznam s prázdnym párom hranatých zátvoriek, napríklad takto:  

? Tip: Prázdny zoznam priradíme premennej, aby sme ju mohli neskôr použiť v našom programe.

Napríklad:

num = []

Prázdny zoznam bude mať dĺžku 0, ako vidíte tu:

>>> num = [] >>> len(num) 0

Prázdne zoznamy sú falošné hodnoty, čo znamená, že sa hodnotia Falsev boolovskom kontexte:

>>> num = [] >>> bool(num) False

Pridajte prvky do prázdneho zoznamu

Prvky môžete pridať do prázdneho zoznamu pomocou metód append()a insert():

  • append() pridá prvok na koniec zoznamu.
  • insert() pridá prvok do konkrétneho indexu zoznamu, ktorý vyberiete.

Pretože zoznamy môžu byť buď nepravdivé, alebo nepravdivé hodnoty v závislosti od toho, či sú pri vyhodnotení prázdne alebo nie, môžete ich použiť v podmienkách, ako je tento:

if num: print("This list is not empty") else: print("This list is empty")

Výstup tohto kódu je:

This list is empty

Pretože bol zoznam prázdny, vyhodnotí sa ako nepravdivý.

Všeobecne:

  • Ak zoznam nie je prázdny, vyhodnotí sa ako True, takže sa vykoná klauzula if.
  • Ak je zoznam prázdny, vyhodnotí sa ako False, takže sa vykoná klauzula else.

Príklad:

V príklade nižšie vytvoríme prázdny zoznam a priradíme ho k premennej num. Potom pomocou slučky for pridáme do zoznamu, ktorý bol pôvodne prázdny, postupnosť prvkov (celé čísla):

>>> num = [] >>> for i in range(3, 15, 2): num.append(i)

Skontrolujeme hodnotu premennej, aby sme zistili, či boli položky úspešne pripojené, a potvrdíme, že zoznam už nie je prázdny:  

>>> num [3, 5, 7, 9, 11, 13]

? Tip:append() Prvý prvok bežne používame na pridanie do prázdneho zoznamu, ale môžete tiež pridať tento prvok, ktorý volá insert()metódu s indexom 0:

>>> num = [] >>> num.insert(0, 1.5) # add the float 1.5 at index 0 >>> num [1.5]

? Pomocou konštruktéra list ()

Prípadne môžete vytvoriť prázdny zoznam pomocou konštruktora typu list(), ktorý vytvorí nový objekt zoznamu.

Podľa dokumentácie Pythonu:

Ak nie je zadaný žiadny argument, konštruktor vytvorí nový prázdny zoznam [].

? Tip: Týmto sa v pamäti vytvorí nový objekt zoznamu a keďže sme neposlali žiadne argumenty list(), vytvorí sa prázdny zoznam.

Napríklad:

num = list()

Tento prázdny zoznam bude mať dĺžku 0, ako vidíte tu:

>>> num = list() >>> len(num) 0

A je to falošná hodnota, keď je prázdna (hodnotí sa Falsev boolovskom kontexte):

>>> num = list() >>> bool(num) False

Príklad:

Toto je plne funkčný zoznam, takže doň môžeme pridávať prvky:

>>> num = list() >>> for i in range(3, 15, 2): num.append(i)

Výsledkom bude neprázdny zoznam, ako vidíte tu:

>>> num [3, 5, 7, 9, 11, 13]

? Pouzdra

  • Zvyčajne sa používajú list()na vytváranie zoznamov z existujúcich opakovateľných súborov, ako sú reťazce, slovníky alebo n-tice.
  • Bežne uvidíte hranaté zátvorky, ktoré []sa používajú na vytvorenie prázdnych zoznamov v Pythone, pretože táto syntax je stručnejšia a rýchlejšia.

? Efektívnosť

Počkaj! Práve som ti povedal, že []je to rýchlejšie ako list()...

Ale o koľko rýchlejšie?

Poďme skontrolovať ich časovú efektívnosť pomocou modulu timeit .

Ak chcete tento modul použiť v programe Python, musíte ho importovať:

>>> import timeit

Konkrétne použijeme funkciu timeit z tohto modulu, ktorú môžete volať pomocou tejto syntaxe:

? Tip: Kód sa opakuje niekoľkokrát, aby sa znížili časové rozdiely, ktoré môžu vzniknúť z vonkajších faktorov, ako sú napríklad iné procesy, ktoré môžu bežať v danom okamihu. Vďaka tomu sú výsledky spoľahlivejšie na účely porovnania.

? Na vaše známky ... pripravte sa ... pripravení! Tu je kód a výstup:

Najskôr importujeme modul.

>>> import timeit

Potom začneme testovať každú syntax.

Testovanie []:

>>> timeit.timeit('[]', number=10**4) 0.0008467000000109692

Testovanie list():

>>> timeit.timeit('list()', number=10**4) 0.002867799999989984

? Tip: Upozorňujeme, že kód, ktorý chcete načasovať, musí byť obklopený jednoduchými ''alebo dvojitými úvodzovkami "". Čas vrátený timeitfunkciou je vyjadrený v sekundách.

Porovnajte tieto výsledky:

  • []: 0.0008467000000109692
  • list(): 0.002867799999989984

Môžete vidieť, že []je to oveľa rýchlejšie ako list(). V 0.002tomto teste bol rozdiel približne sekúnd:

>>> 0.002867799999989984 - 0.0008467000000109692 0.0020210999999790147

Som si istý, že sa vás na to musíte pýtať hneď teraz: Prečo je list()menej efektívne, ako []keď robia presne to isté?

No ... list()je pomalší, pretože vyžaduje vyhľadanie názvu funkcie, jej vyvolanie a následné vytvorenie objektu zoznamu v pamäti. Naproti tomu []je ako „skratka“, ktorá na vytvorenie zoznamu v pamäti nevyžaduje toľko medzikrokov.

Tento časový rozdiel veľmi neovplyvní výkonnosť vášho programu, ale je pekné vedieť, ktorý z nich je efektívnejší a ako pracuje v zákulisí.

? V súhrne

Prázdny zoznam môžete vytvoriť pomocou prázdnej dvojice hranatých zátvoriek []alebo pomocou konštruktora typu list(), vstavanej funkcie, ktorá vytvorí prázdny zoznam, keď nebudú odovzdané žiadne argumenty.

Hranaté zátvorky []sa v Pythone bežne používajú na vytváranie prázdnych zoznamov, pretože je rýchlejší a stručnejší.

Naozaj dúfam, že sa vám môj článok páčil a bol pre vás užitočný. Teraz môžete vo svojich projektoch Pythonu vytvárať prázdne zoznamy. Prezrite si moje online kurzy. Sleduj ma na Twitteri. ⭐️

Ak sa chcete hlbšie ponoriť do zoznamov, môžete si prečítať:

  • Dodatok k zoznamu Pythonu - Ako pridať prvok do poľa, vysvetlené v príkladoch
  • Metóda poľa Python Sort List Array - vzostupne a zostupne vysvetlená v príkladoch
  • Pripojenie zoznamu Python VS Rozšírenie zoznamu Python - rozdiel vysvetlený príkladmi metódy Array