Python тіліндегі тізімнен (массив) элементтерді жою: clear(), pop(), remove(), del

Іскерлік

Python тіліндегі типтер тізімінің тізімінен (массивінен) элементті жою үшін clear(), pop() және remove() тізім әдістерін пайдаланыңыз. Сондай-ақ, тізімнің орнын және ауқымын индекс немесе кесінді арқылы көрсетуге болады, содан кейін оны del операторы арқылы жоюға болады.

Мұнда келесі ақпарат берілген.

  • Барлық элементтерді алып тастаңыз:clear()
  • Көрсетілген позициядағы элементті жойып, оның мәнін алыңыз.:pop()
  • Көрсетілген мәні бар элементтерді іздейді және бірінші элементті жояды.:remove()
  • Индекс бөлігіндегі орын мен ауқымды көрсету арқылы жою:del
  • Шарттарға сәйкес келетін бірнеше элементтерді пакеттік жою.:тізімді қосу көрсеткіші

Тізімдер әртүрлі типтегі деректерді сақтай алатынын және массивтерден қатаң айырмашылығы бар екенін ескеріңіз. Жад өлшемін немесе жад мекенжайын қажет ететін процестер үшін немесе ауқымды деректерді сандық есептеу үшін массивтерді өңдеу қажет болғанда массив (стандартты кітапхана) немесе NumPy пайдаланыңыз.

Барлық элементтерді алып тастаңыз:clear()

clear() тізім әдісінде барлық элементтер жойылады, нәтижесінде бос тізім пайда болады.

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

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

Көрсетілген позициядағы элементті жойып, оның мәнін алыңыз.:pop()

Тізімнің pop() әдісін көрсетілген позициядағы элементті жою және сол элементтің мәнін алу үшін пайдалануға болады.

Бірінші (бастапқы) сан 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]

Теріс мәнді соңынан (соңғы) бастап позицияны көрсету үшін де пайдалануға болады. Соңы (соңғы) -1.

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

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

Егер аргумент алынып тасталса және ешбір орын көрсетілмесе, соңындағы (соңғы) элемент жойылады.

print(l.pop())
# 9

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

Болмайтын орынды көрсету қатеге әкеледі.

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

Бірінші элементті алып тастайтын pop(0) келесі шығындарды талап ететінін және тиімді әрекет емес екенін ескеріңіз. Тізімдердегі әртүрлі операциялардың есептеу күрделілігі үшін ресми викидегі келесі бетті қараңыз.
O(n)

O(1)Дек түрі стандартты кітапхана жинақтары модулінде осы бағамен жоғарғы элементтерді жоятын түр ретінде берілген. Мысалы, деректерді кезек (FIFO) ретінде қарастырғыңыз келсе, deque пайдалану тиімдірек.

Көрсетілген мәні бар элементтерді іздейді және бірінші элементті жояды.:remove()

Remove() тізім әдісін көрсетілген мәнмен бірдей элементтерді іздеу және бірінші элементті жою үшін пайдалануға болады.

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

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

Тізімде көрсетілген мәнге сәйкес келетін бірнеше элемент болса, тек біріншісі ғана жойылады.

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

Егер жоқ мән көрсетілсе, қате орын алады.

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

Индекс бөлігіндегі орын мен ауқымды көрсету арқылы жою:del

Сондай-ақ тізімнен элементтерді жою үшін del операторын пайдалануға болады.

Жойылатын элементті оның индексі бойынша көрсетіңіз. Бірінші (бастапқы) индекс 0, ал соңғы (соңғы) индекс -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]

Бөлімдері бар ауқымды көрсетсеңіз, бірден бірнеше элементтерді жоюға болады.

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]

Сондай-ақ бүкіл ауқымды көрсетуге және барлық элементтерді жоюға болады.

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

[start:stop:step]Егер сіз осы жолмен кесіндідегі ауқымды көрсетсеңіз және қосымша қадамды көрсетсеңіз, бірден бірнеше секіру элементтерін жоюға болады.

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]

Кесу туралы қосымша ақпарат алу үшін келесі мақаланы қараңыз.

Шарттарға сәйкес келетін бірнеше элементтерді пакеттік жою.:тізімді қосу көрсеткіші

Шарттарды қанағаттандыратын элементтерді жою процесі шарттарды қанағаттандырмайтын элементтерді қалдыру (шығару) процесіне тең. Өңдеудің бұл түрі үшін тізімді түсіну белгісі пайдаланылады.

Тақ немесе жұп элементтерді жою мысалы (= жұп немесе тақ элементтерді қалдыру) төменде көрсетілген.
%Бұл қалған оператор.
i % 2
Бұл i-нің 2-ге бөлінген қалдығы.

Тізімді түсіну белгісінде жаңа тізім жасалады. Осы уақытқа дейін енгізілген тізім түрінің әдістерінен айырмашылығы, бастапқы тізім өзгеріссіз қалады.

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]

Басқа мысалдар. Шартты өрнекке байланысты әртүрлі өңдеу мүмкін.

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

Қайталанатын элементтерді жойғыңыз келсе, жиын түрін пайдаланыңыз.

print(list(set(l)))
# ['David', 'Alice', 'Charlie', 'Bob']
Copied title and URL