Dátová štruktúra frontu je veľmi známa dátová štruktúra, zoznamy v Pythone zvyčajne pripájajú prvky na koniec zoznamu Python. Na implementáciu dátovej štruktúry frontu je nevyhnutné, aby bolo možné odstrániť predný prvok zo zoznamu. Poďme diskutovať o spôsoboch odstránenia prvého prvku zoznamu.
Metóda 1: Odstráňte prvky zo zoznamov v Pythone pomocou pop()
Táto metóda pop() , t.j. odstráni a vytlačí ithprvok zo zoznamu. Táto metóda sa väčšinou používa medzi ostatnými dostupnými možnosťami na vykonanie tejto úlohy. Tým sa zmení pôvodný zoznam.
Python3
# initializing list> test_list> => [> 1> ,> 4> ,> 3> ,> 6> ,> 7> ]> # Printing original list> print> (> 'Original list is : '> +> str> (test_list))> # using pop(0) to perform removal> test_list.pop(> 0> )> # Printing modified list> print> (> 'Modified list is : '> +> str> (test_list))> |
>
>
Výkon :
Original list is : [1, 4, 3, 6, 7] Modified list is : [4, 3, 6, 7]>
Metóda 2: Odstráňte prvky zo zoznamov v Pythone pomocou del list[]
Toto je len alternatívna metóda na vykonanie predného vymazania, tento operátor del tiež vykonáva odstránenie prvkov zoznamu na mieste a zmenšuje veľkosť zoznamu o 1.
Python3
# initializing list> test_list> => [> 1> ,> 4> ,> 3> ,> 6> ,> 7> ]> # Printing original list> print> (> 'Original list is : '> +> str> (test_list))> # using del list[0] to perform removal> del> test_list[> 0> ]> # Printing modified list> print> (> 'Modified list is : '> +> str> (test_list))> |
>
>
Výkon :
Original list is : [1, 4, 3, 6, 7] Modified list is : [4, 3, 6, 7]>
Metóda 3: Odstráňte prvky zo zoznamov v Pythone pomocou Slicingu
Python Slicing je ďalší prístup, ktorým možno tento problém vyriešiť, môžeme rozrezať zoznam od druhého prvku po posledný a priradiť ho k prázdnemu zoznamu. Toto nevykonáva konverziu na mieste ako v prípade vyššie uvedených dvoch metód.
Python3
# initializing list> test_list> => [> 1> ,> 4> ,> 3> ,> 6> ,> 7> ]> # Printing original list> print> (> 'Original list is : '> +> str> (test_list))> # using slicing to perform removal> res> => test_list[> 1> :]> # Printing modified list> print> (> 'Modified list is : '> +> str> (res))> |
>
>
Výkon :
Original list is : [1, 4, 3, 6, 7] Modified list is : [4, 3, 6, 7]>
Metóda 4: Odstráňte prvky zo zoznamov v Pythone pomocou o čom() + popleft()
Toto je menej známa metóda na dosiahnutie tejto konkrétnej úlohy, konvertovanie zoznamu na deque a potom vykonanie pop vľavo, odstráni prvok z prednej časti zoznamu.
Python3
from> collections> import> deque> # initializing list> test_list> => [> 1> ,> 4> ,> 3> ,> 6> ,> 7> ]> # Printing original list> print> (> 'Original list is : '> +> str> (test_list))> # using deque() + popleft() to> # perform removal> res> => deque(test_list)> res.popleft()> # Printing modified list> print> (> 'Modified list is : '> +> str> (> list> (res)))> |
>
>
Výkon :
Original list is : [1, 4, 3, 6, 7] Modified list is : [4, 3, 6, 7]>
Metóda 5: Odstráňte prvky zo zoznamov v Pythone pomocou remove()
The odstrániť () funkcia umožňuje odstrániť prvý výskyt zadanej hodnoty zo zoznamu. Toto možno použiť na odstránenie hlavnej položky zoznamu. Vyberte prvého člena zo zoznamu a vložte ho do funkcie remove().
Python3
test_list> => [> 1> ,> 4> ,> 3> ,> 6> ,> 7> ,> 10> ]> # Printing original list> print> (> 'Original list is : '> +> str> (test_list))> # Remove first element from list in python> test_list.remove(test_list[> 0> ])> # Printing modified list> print> (> 'Modified list is : '> +> str> (test_list))> |
>
>
Výkon :
c formátovaný reťazec
Original list is : [1, 4, 3, 6, 7, 10] Modified list is : [4, 3, 6, 7, 10]>
Metóda:6 pomocou porozumenia zoznamu
krok za krokom algoritmus na implementáciu prístupu
- Zoznam test_list
- Inicializujte prázdny zoznam new_list
- Iterujte prvky v test_liste od druhého prvku:
a. Pripojte aktuálny prvok do new_list - Vrátiť nový_zoznam
Python3
# initializing list> test_list> => [> 1> ,> 4> ,> 3> ,> 6> ,> 7> ]> # remove first element using list comprehension> new_list> => [x> for> x> in> test_list[> 1> :]]> # print the new list> print> (> 'Modified list is : '> +> str> (new_list))> |
>
>Výkon
Modified list is : [4, 3, 6, 7]>
Časová zložitosť:
Časová zložitosť tohto prístupu je O(n), kde n je počet prvkov vo vstupnom zozname test_list.
Je to preto, že algoritmus iteruje každý prvok v zozname raz, s výnimkou prvého prvku, ktorý sa preskočí.
Pomocný priestor:
Pomocná priestorová zložitosť tohto prístupu je O(n), kde n je počet prvkov vo vstupnom zozname test_list.
Je to preto, že algoritmus vytvorí nový zoznam new_list na uloženie upravenej verzie vstupného zoznamu, ktorý by potenciálne mohol mať rovnaký počet prvkov ako test_list.
Pomocou numpy.delete():
- Importujte knižnicu numpy
- Vytvorte numpy pole zo zoznamu, ktorý chcete upraviť
- Na odstránenie prvého prvku poľa použite funkciu numpy.delete().
- Skonvertujte upravené numpy pole späť na zoznam
- Vytlačte pôvodný a upravený zoznam
Python3
import> numpy as np> # initializing list> test_list> => [> 1> ,> 4> ,> 3> ,> 6> ,> 7> ]> # Printing original list> print> (> 'Original list is : '> +> str> (test_list))> # Convert list to numpy array> np_array> => np.array(test_list)> # Use numpy.delete() to remove first element> modified_np_array> => np.delete(np_array,> 0> )> # Convert numpy array back to list> modified_list> => modified_np_array.tolist()> # Printing modified list> print> (> 'Modified list is : '> +> str> (modified_list))> |
>
>
Výkon:
Original list is : [1, 4, 3, 6, 7] Modified list is : [4, 3, 6, 7]>
Časová zložitosť:
Časová zložitosť funkcie numpy.delete() je O(n), kde n je počet prvkov v poli numpy. Keďže zoznam tiež konvertujeme na numpy pole a späť na zoznam, celková časová zložitosť tohto prístupu je O(n).
Zložitosť priestoru:
Priestorová zložitosť tohto prístupu je O(n), kde n je počet prvkov vo vstupnom zozname test_list. Je to spôsobené vytvorením numpy poľa.