Upang alisin ang isang elemento mula sa isang listahan (array) ng uri ng listahan sa Python, gamitin ang mga pamamaraan ng listahan na clear(), pop() at alisin(). Maaari mo ring tukuyin ang posisyon at hanay ng listahan sa pamamagitan ng paggamit ng index o slice at pagkatapos ay tanggalin ito gamit ang del statement.
Ang sumusunod na impormasyon ay ibinigay dito.
- Alisin ang lahat ng elemento:
clear()
- Tanggalin ang isang elemento sa tinukoy na posisyon at kunin ang halaga nito.:
pop()
- Naghahanap ng mga elemento na may tinukoy na halaga at inaalis ang unang elemento.:
remove()
- Pagtanggal sa pamamagitan ng pagtukoy ng posisyon at hanay sa index slice:
del
- Batch na tanggalin ang maraming elemento na nakakatugon sa pamantayan.:indikasyon ng pagsasama ng listahan
Tandaan na ang mga listahan ay maaaring mag-imbak ng data ng iba’t ibang uri, at mahigpit na naiiba sa mga array. Gumamit ng array (standard library) o NumPy kapag gusto mong pangasiwaan ang mga array para sa mga prosesong nangangailangan ng laki ng memory o memory address, o para sa numerical computation ng malakihang data.
- Alisin ang lahat ng elemento:clear()
- Tanggalin ang isang elemento sa tinukoy na posisyon at kunin ang halaga nito.:pop()
- Naghahanap ng mga elemento na may tinukoy na halaga at inaalis ang unang elemento.:remove()
- Pagtanggal sa pamamagitan ng pagtukoy ng posisyon at hanay sa index slice:del
- Batch na tanggalin ang maraming elemento na nakakatugon sa pamantayan.:indikasyon ng pagsasama ng listahan
Alisin ang lahat ng elemento:clear()
Sa paraan ng listahan clear(), ang lahat ng mga elemento ay tinanggal, na nagreresulta sa isang walang laman na listahan.
l = list(range(10))
print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
l.clear()
print(l)
# []
Tanggalin ang isang elemento sa tinukoy na posisyon at kunin ang halaga nito.:pop()
Ang paraan na pop() ng isang listahan ay maaaring gamitin upang tanggalin ang isang elemento sa isang tinukoy na posisyon at makuha ang halaga ng elementong iyon.
Ang unang (inisyal) na numero ay 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]
Ang isang negatibong halaga ay maaari ding gamitin upang tukuyin ang posisyon mula sa dulo (huling). Ang dulo (huling) ay -1.
print(l.pop(-2))
# 8
print(l)
# [1, 2, 3, 5, 6, 7, 9]
Kung ang argumento ay tinanggal at walang posisyon na tinukoy, ang elemento sa dulo (huling) ay tatanggalin.
print(l.pop())
# 9
print(l)
# [1, 2, 3, 5, 6, 7]
Ang pagtukoy ng hindi umiiral na posisyon ay magreresulta sa isang error.
# print(l.pop(100))
# IndexError: pop index out of range
Tandaan na ang pop(0), na nag-aalis ng unang elemento, ay nangangailangan ng sumusunod na gastos at hindi isang mahusay na operasyon. Tingnan ang sumusunod na pahina sa opisyal na wiki para sa computational complexity ng iba’t ibang operasyon sa mga listahan.O(n)
O(1)
Ang uri ng deque ay ibinibigay sa karaniwang module ng mga koleksyon ng library bilang isang uri na nagtatanggal ng mga elemento sa itaas sa halagang ito. Halimbawa, kung gusto mong ituring ang data bilang isang queue (FIFO), mas mahusay na gumamit ng deque.
Naghahanap ng mga elemento na may tinukoy na halaga at inaalis ang unang elemento.:remove()
Ang paraan ng listahan remove() ay maaaring gamitin upang maghanap ng mga elemento na may parehong halaga tulad ng tinukoy at alisin ang unang elemento.
l = ['Alice', 'Bob', 'Charlie', 'Bob', 'Dave']
print(l)
# ['Alice', 'Bob', 'Charlie', 'Bob', 'Dave']
l.remove('Alice')
print(l)
# ['Bob', 'Charlie', 'Bob', 'Dave']
Kung ang listahan ay naglalaman ng higit sa isang elemento na tumutugma sa tinukoy na halaga, ang una lang ang aalisin.
l.remove('Bob')
print(l)
# ['Charlie', 'Bob', 'Dave']
Kung may tinukoy na hindi umiiral na halaga, magkakaroon ng error.
# l.remove('xxx')
# ValueError: list.remove(x): x not in list
Pagtanggal sa pamamagitan ng pagtukoy ng posisyon at hanay sa index slice:del
Maaari mo ring gamitin ang del statement upang alisin ang mga elemento mula sa listahan.
Tukuyin ang elementong tatanggalin ng index nito. Ang unang (paunang) index ay 0, at ang huling (panghuling) index ay -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]
Kung tutukuyin mo ang isang hanay na may mga hiwa, maaari mong tanggalin ang maraming elemento nang sabay-sabay.
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]
Posible ring tukuyin ang buong hanay at tanggalin ang lahat ng elemento.
l = list(range(10))
del l[:]
print(l)
# []
[start:stop:step]
Kung tutukuyin mo ang hanay sa slice sa ganitong paraan at tukuyin ang incremental na hakbang, maaari mong tanggalin ang maraming elemento ng paglukso nang sabay-sabay.
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]
Para sa karagdagang impormasyon tungkol sa paghiwa, tingnan ang sumusunod na artikulo.
Batch na tanggalin ang maraming elemento na nakakatugon sa pamantayan.:indikasyon ng pagsasama ng listahan
Ang proseso ng pag-alis ng mga elemento na nakakatugon sa mga kondisyon ay katumbas ng proseso ng pag-alis (pag-extract) ng mga elemento na hindi nakakatugon sa mga kundisyon. Ginagamit ang notasyon sa pag-unawa sa listahan para sa ganitong uri ng pagproseso.
- Mga Kaugnay na Artikulo:Paggamit ng Python list comprehension notation
Ang isang halimbawa ng pag-alis ng mga kakaiba o kahit na mga elemento (= pag-iiwan ng kahit o kakaibang mga elemento) ay ipinapakita sa ibaba.%
Ito ang natitirang operator.i % 2
Ito ang natitira sa i na hinati ng 2.
Sa notasyon ng pag-unawa sa listahan, isang bagong listahan ang gagawin. Hindi tulad ng mga paraan ng uri ng listahan na ipinakilala sa ngayon, ang orihinal na listahan ay nananatiling hindi nagbabago.
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]
Iba pang mga halimbawa. Posible ang iba’t ibang pagproseso depende sa conditional expression.
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']
Kung gusto mong alisin ang mga duplicate na elemento, gamitin ang set na uri ng set.
print(list(set(l)))
# ['David', 'Alice', 'Charlie', 'Bob']