Podatkovna struktura čakalne vrste je zelo znana podatkovna struktura, seznami v Pythonu običajno dodajo elemente na konec seznama Python. Za implementacijo podatkovne strukture čakalne vrste je bistveno, da lahko odstranite sprednji element s seznama. Pogovorimo se o načinih odstranitve prvega elementa seznama.
1. način: Odstranite elemente s seznamov v Pythonu s pop()
Ta metoda pop(), tj. odstrani in natisne ithelement s seznama. Ta metoda se večinoma uporablja med drugimi razpoložljivimi možnostmi za izvedbo te naloge. To spremeni prvotni 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))> |
>
>
Izhod:
Original list is : [1, 4, 3, 6, 7] Modified list is : [4, 3, 6, 7]>
2. način: Odstranite elemente s seznamov v Pythonu z uporabo del list[]
To je le nadomestna metoda za izvedbo sprednjega brisanja, ta del operator izvede tudi odstranitev elementov seznama na mestu in zmanjša velikost seznama za 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))> |
>
>
Izhod:
Original list is : [1, 4, 3, 6, 7] Modified list is : [4, 3, 6, 7]>
3. način: Odstranite elemente s seznamov v Pythonu z uporabo rezanja
Rezanje v Pythonu je še en pristop, s katerim je mogoče rešiti ta problem, lahko razrežemo seznam od drugega elementa do zadnjega in ga dodelimo praznemu seznamu. To ne izvede pretvorbe na mestu kot v primeru zgornjih dveh 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))> |
>
>
Izhod:
Original list is : [1, 4, 3, 6, 7] Modified list is : [4, 3, 6, 7]>
4. način: Odstranite elemente s seznamov v Pythonu z uporabo o čem() + popleft()
To je manj znana metoda za doseganje te posebne naloge, pretvorba seznama v deque in nato izvajanje pop levo, odstrani element s sprednje strani seznama.
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)))> |
>
>
Izhod:
Original list is : [1, 4, 3, 6, 7] Modified list is : [4, 3, 6, 7]>
5. način: Odstranite elemente s seznamov v Pythonu z uporabo remove()
The Odstrani() vam omogoča, da s seznama odstranite prvi primerek določene vrednosti. To lahko uporabite za odstranitev zgornjega elementa seznama. Izberite prvega člana s seznama in ga vnesite v funkcijo 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))> |
>
>
Izhod:
.enako java
Original list is : [1, 4, 3, 6, 7, 10] Modified list is : [4, 3, 6, 7, 10]>
Metoda:6 z uporabo razumevanja seznama
algoritem po korakih za izvajanje pristopa
- Seznam test_list
- Inicializirajte prazen seznam new_list
- Ponovite elemente v test_list, začenši z drugim elementom:
a. Dodajte trenutni element na new_list - Vrni 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))> |
>
>Izhod
Modified list is : [4, 3, 6, 7]>
Časovna zahtevnost:
Časovna kompleksnost tega pristopa je O(n), kjer je n število elementov na vhodnem seznamu test_list.
To je zato, ker algoritem enkrat ponovi vsak element na seznamu, razen prvega elementa, ki je preskočen.
Pomožni prostor:
Kompleksnost pomožnega prostora tega pristopa je O(n), kjer je n število elementov na vhodnem seznamu test_list.
To je zato, ker algoritem ustvari nov seznam new_list za shranjevanje spremenjene različice vhodnega seznama, ki bi lahko imel enako število elementov kot test_list.
Uporaba numpy.delete():
- Uvozite knjižnico numpy
- Ustvarite matriko numpy s seznama, ki ga želite spremeniti
- Uporabite funkcijo numpy.delete(), da odstranite prvi element matrike
- Spremenjeno matriko numpy pretvori nazaj v seznam
- Natisnite izvirne in spremenjene sezname
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))> |
>
>
Izhod:
Original list is : [1, 4, 3, 6, 7] Modified list is : [4, 3, 6, 7]>
Časovna zahtevnost:
Časovna kompleksnost funkcije numpy.delete() je O(n), kjer je n število elementov v matriki numpy. Ker tudi seznam pretvorimo v matriko numpy in nazaj v seznam, je splošna časovna zapletenost tega pristopa O(n).
Kompleksnost prostora:
Prostorska kompleksnost tega pristopa je O(n), kjer je n število elementov na vhodnem seznamu test_list. To je posledica ustvarjanja matrike numpy.