Njabut unsur saka dhaftar (larik) ing Python: cetha (), pop (), mbusak (), del

Bisnis

Kanggo mbusak unsur saka dhaftar (larik) saka dhaftar jinis ing Python, nggunakake dhaftar cara cetha (), pop () lan mbusak (). Sampeyan uga bisa nemtokake posisi lan jangkoan dhaptar kanthi nggunakake indeks utawa irisan banjur mbusak kanthi nggunakake statement del.

Informasi ing ngisor iki kasedhiya ing kene.

  • Mbusak kabeh unsur:clear()
  • Mbusak unsur ing posisi sing ditemtokake lan entuk regane.:pop()
  • Nggoleki unsur kanthi nilai sing ditemtokake lan mbusak unsur pisanan.:remove()
  • Mbusak kanthi nemtokake posisi lan kisaran ing irisan indeks:del
  • Batch mbusak pirang-pirang unsur sing cocog karo kritéria.:dhaptar inklusi indikasi

Elinga yen dhaptar bisa nyimpen data saka macem-macem jinis, lan strictly beda saka array. Gunakake array (perpustakaan standar) utawa NumPy yen sampeyan pengin nangani array kanggo pangolahan sing mbutuhake ukuran memori utawa alamat memori, utawa kanggo etungan numerik data skala gedhe.

Mbusak kabeh unsur:clear()

Ing cara dhaftar cetha (), kabeh unsur dibusak, asil ing dhaftar kosong.

l = list(range(10))
print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

l.clear()
print(l)
# []

Mbusak unsur ing posisi sing ditemtokake lan entuk regane.:pop()

Cara pop () dhaptar bisa digunakake kanggo mbusak unsur ing posisi sing ditemtokake lan entuk nilai unsur kasebut.

Nomer pisanan (initial) yaiku 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]

Nilai negatif uga bisa digunakake kanggo nemtokake posisi saka mburi (pungkasan). Pungkasan (pungkasan) yaiku -1.

print(l.pop(-2))
# 8

print(l)
# [1, 2, 3, 5, 6, 7, 9]

Yen argumen diilangi lan ora ana posisi sing ditemtokake, unsur ing pungkasan (pungkasan) bakal dibusak.

print(l.pop())
# 9

print(l)
# [1, 2, 3, 5, 6, 7]

Nemtokake posisi sing ora ana bakal nyebabake kesalahan.

# print(l.pop(100))
# IndexError: pop index out of range

Elinga yen pop (0), sing mbusak unsur pisanan, mbutuhake biaya ing ngisor iki lan ora operasi efisien. Deleng kaca ing ngisor iki ing wiki resmi kanggo kerumitan komputasi saka macem-macem operasi ing dhaptar.
O(n)

O(1)Jinis deque diwenehake ing modul koleksi perpustakaan standar minangka jinis sing mbusak unsur menyang ndhuwur ing biaya iki. Contone, yen sampeyan pengin nganggep data minangka antrian (FIFO), luwih efisien nggunakake deque.

Nggoleki unsur kanthi nilai sing ditemtokake lan mbusak unsur pisanan.:remove()

Cara dhaftar mbusak () bisa digunakake kanggo nelusuri unsur karo Nilai padha ditemtokake lan mbusak unsur pisanan.

l = ['Alice', 'Bob', 'Charlie', 'Bob', 'Dave']
print(l)
# ['Alice', 'Bob', 'Charlie', 'Bob', 'Dave']

l.remove('Alice')
print(l)
# ['Bob', 'Charlie', 'Bob', 'Dave']

Yen dhaptar ngemot luwih saka siji unsur sing cocog karo nilai sing ditemtokake, mung sing pisanan bakal dibusak.

l.remove('Bob')
print(l)
# ['Charlie', 'Bob', 'Dave']

Yen nilai sing ora ana ditemtokake, ana kesalahan.

# l.remove('xxx')
# ValueError: list.remove(x): x not in list

Mbusak kanthi nemtokake posisi lan kisaran ing irisan indeks:del

Sampeyan uga bisa nggunakake statement del kanggo mbusak unsur saka dhaftar.

Nemtokake unsur sing bakal dibusak dening indeks. Indeks pisanan (initial) 0, lan indeks pungkasan (final) -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]

Yen sampeyan nemtokake sawetara karo irisan, sampeyan bisa mbusak sawetara unsur bebarengan.

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]

Sampeyan uga bisa nemtokake kabeh kisaran lan mbusak kabeh unsur.

l = list(range(10))
del l[:]
print(l)
# []

[start:stop:step]Yen sampeyan nemtokake kisaran ing irisan kanthi cara iki lan nemtokake langkah tambahan, sampeyan bisa mbusak sawetara unsur mlumpat bebarengan.

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]

Kanggo informasi luwih lengkap babagan ngiris, deleng artikel ing ngisor iki.

Batch mbusak pirang-pirang unsur sing cocog karo kritéria.:dhaptar inklusi indikasi

Proses ngilangi unsur sing nyukupi syarat kasebut padha karo proses ninggalake (mengekstrak) unsur sing ora nyukupi syarat. Notasi pangerten dhaptar digunakake kanggo pangolahan iki.

Conto mbusak unsur ganjil utawa genap (= ninggalake unsur genap utawa ganjil) kapacak ing ngisor iki.
%Iki sisa operator.
i % 2
Iki sisa i dibagi 2.

Ing notasi pangerten dhaptar, dhaptar anyar digawe. Beda karo metode jinis dhaptar sing dienalake nganti saiki, dhaptar asli tetep ora owah.

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]

Conto liyane. Macem-macem pangolahan bisa gumantung saka ekspresi kondisional.

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']

Yen sampeyan pengin mbusak unsur duplikat, gunakake jinis set set.

print(list(set(l)))
# ['David', 'Alice', 'Charlie', 'Bob']