Kuondoa kipengee kutoka kwa orodha (safu) ya orodha ya aina kwenye Python, tumia njia za orodha clear(), pop() na remove(). Unaweza pia kubainisha nafasi na safu ya orodha kwa kutumia faharasa au kipande na kisha kuifuta kwa kutumia del statement.
Habari ifuatayo imetolewa hapa.
- Ondoa vipengele vyote:
clear()
- Futa kipengele katika nafasi maalum na upate thamani yake.:
pop()
- Hutafuta vipengee vilivyo na thamani iliyobainishwa na kuondoa kipengele cha kwanza.:
remove()
- Inafuta kwa kubainisha nafasi na masafa katika kipande cha faharasa:
del
- Kundi futa vipengele vingi vinavyokidhi vigezo.:kiashiria cha ujumuishaji wa orodha
Kumbuka kuwa orodha zinaweza kuhifadhi data za aina tofauti, na ni tofauti kabisa na safu. Tumia safu (maktaba ya kawaida) au NumPy unapotaka kushughulikia safu za michakato inayohitaji ukubwa wa kumbukumbu au anwani ya kumbukumbu, au kwa hesabu ya data ya kiwango kikubwa.
- Ondoa vipengele vyote:clear()
- Futa kipengele katika nafasi maalum na upate thamani yake.:pop()
- Hutafuta vipengee vilivyo na thamani iliyobainishwa na kuondoa kipengele cha kwanza.:remove()
- Inafuta kwa kubainisha nafasi na masafa katika kipande cha faharasa:del
- Kundi futa vipengele vingi vinavyokidhi vigezo.:kiashiria cha ujumuishaji wa orodha
Ondoa vipengele vyote:clear()
Katika njia ya orodha clear(), vitu vyote huondolewa, na kusababisha orodha tupu.
l = list(range(10))
print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
l.clear()
print(l)
# []
Futa kipengele katika nafasi maalum na upate thamani yake.:pop()
Mbinu pop() ya orodha inaweza kutumika kufuta kipengele katika nafasi maalum na kupata thamani ya kipengele hicho.
Nambari ya kwanza (ya awali) ni 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]
Thamani hasi pia inaweza kutumika kutaja nafasi kutoka mwisho (mwisho). Mwisho (mwisho) ni -1.
print(l.pop(-2))
# 8
print(l)
# [1, 2, 3, 5, 6, 7, 9]
Ikiwa hoja imeachwa na hakuna nafasi iliyotajwa, kipengele kilicho mwishoni (mwisho) kinafutwa.
print(l.pop())
# 9
print(l)
# [1, 2, 3, 5, 6, 7]
Kubainisha nafasi ambayo haipo itasababisha hitilafu.
# print(l.pop(100))
# IndexError: pop index out of range
Kumbuka kuwa pop(0), ambayo huondoa kipengee cha kwanza, inahitaji gharama ifuatayo na sio operesheni bora. Tazama ukurasa ufuatao kwenye wiki rasmi kwa ugumu wa hesabu wa shughuli mbalimbali kwenye orodha.O(n)
O(1)
Aina ya deque imetolewa katika sehemu ya kawaida ya makusanyo ya maktaba kama aina ambayo hufuta vipengele hadi juu kwa gharama hii. Kwa mfano, ikiwa unataka kuchukulia data kama foleni (FIFO), ni bora zaidi kutumia deque.
Hutafuta vipengee vilivyo na thamani iliyobainishwa na kuondoa kipengele cha kwanza.:remove()
Njia ya orodha remove() inaweza kutumika kutafuta vipengee vyenye thamani sawa na ilivyoainishwa na kuondoa kipengele cha kwanza.
l = ['Alice', 'Bob', 'Charlie', 'Bob', 'Dave']
print(l)
# ['Alice', 'Bob', 'Charlie', 'Bob', 'Dave']
l.remove('Alice')
print(l)
# ['Bob', 'Charlie', 'Bob', 'Dave']
Ikiwa orodha ina zaidi ya kipengele kimoja kinacholingana na thamani iliyobainishwa, cha kwanza pekee ndicho kitakachoondolewa.
l.remove('Bob')
print(l)
# ['Charlie', 'Bob', 'Dave']
Ikiwa thamani haipo imeelezwa, hitilafu hutokea.
# l.remove('xxx')
# ValueError: list.remove(x): x not in list
Inafuta kwa kubainisha nafasi na masafa katika kipande cha faharasa:del
Unaweza pia kutumia del statement kuondoa vipengee kwenye orodha.
Bainisha kipengele cha kufutwa na faharasa yake. Fahirisi ya kwanza (ya awali) ni 0, na ya mwisho (ya mwisho) ni -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]
Ukibainisha masafa yenye vipande, unaweza kufuta vipengele vingi mara moja.
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]
Inawezekana pia kutaja safu nzima na kufuta vipengele vyote.
l = list(range(10))
del l[:]
print(l)
# []
[start:stop:step]
Ikiwa utabainisha safu katika kipande kwa njia hii na kutaja hatua ya kuongezeka, unaweza kufuta vipengele vingi vya kuruka mara moja.
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]
Kwa habari zaidi kuhusu kukata, angalia makala ifuatayo.
Kundi futa vipengele vingi vinavyokidhi vigezo.:kiashiria cha ujumuishaji wa orodha
Mchakato wa kuondoa vipengele vinavyokidhi masharti ni sawa na mchakato wa kuacha (kuchimba) vipengele ambavyo havikidhi masharti. Nukuu ya ufahamu wa orodha hutumiwa kwa aina hii ya usindikaji.
- Nakala Zinazohusiana:Kutumia nukuu ya ufahamu wa orodha ya Python
Mfano wa kuondoa vipengee visivyo vya kawaida au hata (= kuacha vipengee hata au visivyo vya kawaida) umeonyeshwa hapa chini.%
Huyu ndiye opereta aliyebaki.i % 2
Hii ni salio ya i iliyogawanywa na 2.
Katika nukuu ya ufahamu wa orodha, orodha mpya imeundwa. Tofauti na njia za aina ya orodha zilizoletwa hadi sasa, orodha ya asili bado haijabadilika.
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]
Mifano mingine. Usindikaji anuwai unawezekana kulingana na usemi wa masharti.
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']
Ikiwa unataka kuondoa vipengele vilivyorudiwa, tumia aina ya kuweka.
print(list(set(l)))
# ['David', 'Alice', 'Charlie', 'Bob']