ការដកធាតុចេញពីបញ្ជី (អារេ) នៅក្នុង 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)ប្រភេទ deque ត្រូវ​បាន​ផ្ដល់​ក្នុង​ម៉ូឌុល​បណ្ដុំ​បណ្ណាល័យ​ស្ដង់ដារ​ជា​ប្រភេទ​ដែល​លុប​ធាតុ​ទៅ​ខាង​លើ​ដោយ​តម្លៃ​នេះ។ ឧទាហរណ៍ ប្រសិនបើអ្នកចង់ចាត់ទុកទិន្នន័យជាជួរ (FIFO) វាកាន់តែមានប្រសិទ្ធភាពក្នុងការប្រើ deque ។

ស្វែងរកធាតុដែលមានតម្លៃដែលបានបញ្ជាក់ ហើយដកធាតុទីមួយចេញ។: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
នេះ​ជា​ផ្នែក​ដែល​នៅ​សល់​ដែល​ខ្ញុំ​ចែក​នឹង ២។

នៅក្នុងបញ្ជីកំណត់ចំណាំ បញ្ជីថ្មីមួយត្រូវបានបង្កើត។ មិនដូចវិធីសាស្រ្តប្រភេទបញ្ជីដែលបានណែនាំរហូតមកដល់ពេលនេះ បញ្ជីដើមនៅតែមិនផ្លាស់ប្តូរ។

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