Da biste uklonili element s popisa (niza) popisa vrsta u Pythonu, koristite metode popisa clear(), pop() i remove(). Također možete odrediti položaj i raspon popisa pomoću indeksa ili slice-a, a zatim ga izbrisati pomoću naredbe del.
Ovdje su navedene sljedeće informacije.
- Uklonite sve elemente:
clear()
- Izbrišite element na navedenoj poziciji i dohvatite njegovu vrijednost.:
pop()
- Traži elemente s navedenom vrijednošću i uklanja prvi element.:
remove()
- Brisanje navođenjem položaja i raspona u indeksnom rezu:
del
- Skupno brisanje više elemenata koji zadovoljavaju kriterije.:indikacija za uključivanje popisa
Imajte na umu da popisi mogu pohranjivati podatke različitih tipova i striktno se razlikuju od nizova. Koristite polje (standardna biblioteka) ili NumPy kada želite rukovati nizovima za procese koji zahtijevaju veličinu memorije ili memorijsku adresu ili za numeričko izračunavanje velikih podataka.
- Uklonite sve elemente:clear()
- Izbrišite element na navedenoj poziciji i dohvatite njegovu vrijednost.:pop()
- Traži elemente s navedenom vrijednošću i uklanja prvi element.:remove()
- Brisanje navođenjem položaja i raspona u indeksnom rezu:del
- Skupno brisanje više elemenata koji zadovoljavaju kriterije.:indikacija za uključivanje popisa
Uklonite sve elemente:clear()
U metodi liste clear(), svi elementi se uklanjaju, što rezultira praznim popisom.
l = list(range(10))
print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
l.clear()
print(l)
# []
Izbrišite element na navedenoj poziciji i dohvatite njegovu vrijednost.:pop()
Metoda pop() popisa može se koristiti za brisanje elementa na određenoj poziciji i dobivanje vrijednosti tog elementa.
Prvi (početni) broj je 0.
l = list(range(10))
print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(l.pop(0))
# 0
print(l)
# [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(l.pop(3))
# 4
print(l)
# [1, 2, 3, 5, 6, 7, 8, 9]
Negativna vrijednost se također može koristiti za određivanje pozicije s kraja (posljednje). Kraj (posljednji) je -1.
print(l.pop(-2))
# 8
print(l)
# [1, 2, 3, 5, 6, 7, 9]
Ako je argument izostavljen, a pozicija nije navedena, element na kraju (posljednji) se briše.
print(l.pop())
# 9
print(l)
# [1, 2, 3, 5, 6, 7]
Određivanje nepostojeće pozicije rezultirat će pogreškom.
# print(l.pop(100))
# IndexError: pop index out of range
Imajte na umu da pop(0), koji uklanja prvi element, zahtijeva sljedeće troškove i nije učinkovita operacija. Pogledajte sljedeću stranicu na službenom wikiju za računsku složenost različitih operacija na listama.O(n)
O(1)
Deque tip je osiguran u modulu zbirki standardnih knjižnica kao tip koji briše elemente na vrh po ovoj cijeni. Na primjer, ako želite podatke tretirati kao red čekanja (FIFO), učinkovitije je koristiti deque.
Traži elemente s navedenom vrijednošću i uklanja prvi element.:remove()
Metoda liste remove() može se koristiti za traženje elemenata s istom vrijednošću kao što je navedeno i uklanjanje prvog elementa.
l = ['Alice', 'Bob', 'Charlie', 'Bob', 'Dave']
print(l)
# ['Alice', 'Bob', 'Charlie', 'Bob', 'Dave']
l.remove('Alice')
print(l)
# ['Bob', 'Charlie', 'Bob', 'Dave']
Ako popis sadrži više od jednog elementa koji odgovara navedenoj vrijednosti, samo će prvi biti uklonjen.
l.remove('Bob')
print(l)
# ['Charlie', 'Bob', 'Dave']
Ako je navedena nepostojeća vrijednost, dolazi do pogreške.
# l.remove('xxx')
# ValueError: list.remove(x): x not in list
Brisanje navođenjem položaja i raspona u indeksnom rezu:del
Također možete koristiti del naredbu za uklanjanje elemenata s popisa.
Navedite element koji će se izbrisati prema njegovom indeksu. Prvi (početni) indeks je 0, a posljednji (konačni) indeks je -1.
l = list(range(10))
print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
del l[0]
print(l)
# [1, 2, 3, 4, 5, 6, 7, 8, 9]
del l[-1]
print(l)
# [1, 2, 3, 4, 5, 6, 7, 8]
del l[6]
print(l)
# [1, 2, 3, 4, 5, 6, 8]
Ako navedete raspon s kriškama, možete izbrisati više elemenata odjednom.
l = list(range(10))
print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
del l[2:5]
print(l)
# [0, 1, 5, 6, 7, 8, 9]
l = list(range(10))
del l[:3]
print(l)
# [3, 4, 5, 6, 7, 8, 9]
l = list(range(10))
del l[4:]
print(l)
# [0, 1, 2, 3]
l = list(range(10))
del l[-3:]
print(l)
# [0, 1, 2, 3, 4, 5, 6]
Također je moguće odrediti cijeli raspon i izbrisati sve elemente.
l = list(range(10))
del l[:]
print(l)
# []
[start:stop:step]
Ako na ovaj način odredite raspon u isječku i navedete inkrementalni korak, možete izbrisati više elemenata za preskakanje odjednom.
l = list(range(10))
del l[2:8:2]
print(l)
# [0, 1, 3, 5, 7, 8, 9]
l = list(range(10))
del l[::3]
print(l)
# [1, 2, 4, 5, 7, 8]
Za više informacija o rezanju pogledajte sljedeći članak.
Skupno brisanje više elemenata koji zadovoljavaju kriterije.:indikacija za uključivanje popisa
Proces uklanjanja elemenata koji zadovoljavaju uvjete je ekvivalentan procesu napuštanja (vađenja) elemenata koji ne zadovoljavaju uvjete. Za ovu vrstu obrade koristi se zapis razumijevanja popisa.
- Povezani članci:Korištenje zapisa razumijevanja popisa Python
Primjer uklanjanja neparnih ili parnih elemenata (= ostavljanje parnih ili neparnih elemenata) prikazan je u nastavku.%
Ovo je operator ostatka.i % 2
Ovo je ostatak od i podijeljen s 2.
U zapisu za razumijevanje popisa kreira se novi popis. Za razliku od dosad uvedenih metoda tipa popisa, izvorni popis ostaje nepromijenjen.
l = list(range(10))
print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print([i for i in l if i % 2 == 0])
# [0, 2, 4, 6, 8]
print([i for i in l if i % 2 != 0])
# [1, 3, 5, 7, 9]
print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Drugi primjeri. Moguća je raznovrsna obrada ovisno o uvjetnom izrazu.
l = ['Alice', 'Bob', 'Charlie', 'Bob', 'David']
print(l)
# ['Alice', 'Bob', 'Charlie', 'Bob', 'David']
print([s for s in l if s != 'Bob'])
# ['Alice', 'Charlie', 'David']
print([s for s in l if s.endswith('e')])
# ['Alice', 'Charlie']
Ako želite ukloniti duple elemente, upotrijebite vrstu skupa.
print(list(set(l)))
# ['David', 'Alice', 'Charlie', 'Bob']