Datová struktura fronty je velmi známá datová struktura, seznamy v Pythonu obvykle připojují prvky na konec seznamu Python . Pro implementaci datové struktury fronty je nezbytné mít možnost odstranit přední prvek ze seznamu. Pojďme diskutovat o způsobech odstranění prvního prvku seznamu.
Metoda 1: Odebrání prvků ze seznamů v Pythonu pomocí pop()
Tato metoda pop() , tj. odstraní a vytiskne ičtprvek ze seznamu. Tato metoda se většinou používá mezi ostatními dostupnými možnostmi k provedení tohoto úkolu. Tím se změní původní seznam.
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ýstup :
Original list is : [1, 4, 3, 6, 7] Modified list is : [4, 3, 6, 7]>
Metoda 2: Odebrání prvků ze seznamů v Pythonu pomocí del list[]
Toto je pouze alternativní metoda k provedení předního odstranění, tento operátor del také provede odstranění prvků seznamu na místě a zmenší velikost seznamu 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ýstup :
Original list is : [1, 4, 3, 6, 7] Modified list is : [4, 3, 6, 7]>
Metoda 3: Odebrání prvků ze seznamů v Pythonu pomocí krájení
Python Slicing je další přístup, kterým lze tento problém vyřešit, můžeme rozdělit seznam od druhého prvku po poslední a přiřadit jej k prázdnému seznamu. To neprovádí konverzi na místě jako v případě výše uvedených dvou metod.
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ýstup :
Original list is : [1, 4, 3, 6, 7] Modified list is : [4, 3, 6, 7]>
Metoda 4: Odebrání prvků ze seznamů v Pythonu pomocí o čem() + popleft()
Toto je méně známá metoda, jak dosáhnout tohoto konkrétního úkolu, převedením seznamu na deque a poté provedením pop left, odstraní prvek z přední části seznamu.
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ýstup :
Original list is : [1, 4, 3, 6, 7] Modified list is : [4, 3, 6, 7]>
Metoda 5: Odebrání prvků ze seznamů v Pythonu pomocí remove()
The odstranit() Funkce umožňuje odstranit první výskyt zadané hodnoty ze seznamu. To lze použít k odstranění hlavní položky seznamu. Vyberte prvního člena ze seznamu a vložte jej do funkce 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ýstup :
c ukázkové programy programování
Original list is : [1, 4, 3, 6, 7, 10] Modified list is : [4, 3, 6, 7, 10]>
Metoda:6 pomocí porozumění seznamu
krok za krokem algoritmus pro implementaci přístupu
- Seznam test_list
- Inicializujte prázdný seznam new_list
- Iterujte prvky v test_listu počínaje druhým prvkem:
A. Připojte aktuální prvek k new_list - Vrátit nový_seznam
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ýstup
Modified list is : [4, 3, 6, 7]>
Časová složitost:
Časová složitost tohoto přístupu je O(n), kde n je počet prvků ve vstupním seznamu test_list.
Algoritmus totiž iteruje každý prvek v seznamu jednou, s výjimkou prvního prvku, který je přeskočen.
Pomocný prostor:
Pomocná prostorová složitost tohoto přístupu je O(n), kde n je počet prvků ve vstupním seznamu test_list.
Důvodem je to, že algoritmus vytvoří nový seznam new_list pro uložení upravené verze vstupního seznamu, který může mít potenciálně stejný počet prvků jako test_list.
Pomocí numpy.delete():
- Importujte knihovnu numpy
- Vytvořte numpy pole ze seznamu, který chcete upravit
- Pomocí funkce numpy.delete() odstraňte první prvek pole
- Převeďte upravené numpy pole zpět na seznam
- Vytiskněte původní a upravené seznamy
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ýstup:
Original list is : [1, 4, 3, 6, 7] Modified list is : [4, 3, 6, 7]>
Časová složitost:
Časová složitost funkce numpy.delete() je O(n), kde n je počet prvků v poli numpy. Protože seznam také převádíme na numpy pole a zpět na seznam, je celková časová složitost tohoto přístupu O(n).
Složitost prostoru:
Prostorová složitost tohoto přístupu je O(n), kde n je počet prvků ve vstupním seznamu test_list. To je způsobeno vytvořením numpy pole.