Python හි ඇති වර්ග ලැයිස්තුවේ (array) ලැයිස්තුවකින් මූලද්රව්යයක් ඉවත් කිරීමට, ලැයිස්තු ක්රම භාවිතා කරන්න clear(), pop() සහ remove(). ඔබට දර්ශකය හෝ පෙත්ත භාවිතයෙන් ලැයිස්තුවේ පිහිටීම සහ පරාසය සඳහන් කළ හැකි අතර පසුව එය ඩෙල් ප්රකාශය භාවිතයෙන් මකා දැමිය හැක.
පහත තොරතුරු මෙහි දක්වා ඇත.
- සියලුම මූලද්රව්ය ඉවත් කරන්න:
clear()
- නිශ්චිත ස්ථානයේ ඇති මූලද්රව්යයක් මකා එහි අගය ලබා ගන්න.:
pop()
- නිශ්චිත අගය සහිත මූලද්රව්ය සොයමින් පළමු මූලද්රව්යය ඉවත් කරයි.:
remove()
- දර්ශක පෙත්තෙහි පිහිටීම සහ පරාසය සඳහන් කිරීම මගින් මකා දැමීම:
del
- කණ්ඩායම නිර්ණායක සපුරාලන බහු මූලද්රව්ය මකන්න.:ලැයිස්තුවට ඇතුළත් කිරීමේ ඇඟවීම
ලැයිස්තුවලට විවිධ වර්ගවල දත්ත ගබඩා කළ හැකි බව සලකන්න, ඒවා අරාවලින් දැඩි ලෙස වෙනස් වේ. ඔබට මතක ප්රමාණය හෝ මතක ලිපිනය අවශ්ය වන ක්රියාවලි සඳහා හෝ මහා පරිමාණ දත්ත සංඛ්යාත්මක ගණනය කිරීම සඳහා අරා හැසිරවීමට අවශ්ය විට array (සම්මත පුස්තකාලය) හෝ NumPy භාවිතා කරන්න.
- සියලුම මූලද්රව්ය ඉවත් කරන්න:clear()
- නිශ්චිත ස්ථානයේ ඇති මූලද්රව්යයක් මකා එහි අගය ලබා ගන්න.:pop()
- නිශ්චිත අගය සහිත මූලද්රව්ය සොයමින් පළමු මූලද්රව්යය ඉවත් කරයි.:remove()
- දර්ශක පෙත්තෙහි පිහිටීම සහ පරාසය සඳහන් කිරීම මගින් මකා දැමීම:del
- කණ්ඩායම නිර්ණායක සපුරාලන බහු මූලද්රව්ය මකන්න.:ලැයිස්තුවට ඇතුළත් කිරීමේ ඇඟවීම
සියලුම මූලද්රව්ය ඉවත් කරන්න: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
ලැයිස්තුවෙන් මූලද්රව්ය ඉවත් කිරීමට ඔබට ඩෙල් ප්රකාශය භාවිතා කළ හැක.
එහි දර්ශකය මගින් මකා දැමිය යුතු මූලද්රව්යය සඳහන් කරන්න. පළමු (ආරම්භක) දර්ශකය 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
මෙය 2න් බෙදූ i හි ඉතිරියයි.
ලැයිස්තු අවබෝධතා අංකනය තුළ, නව ලැයිස්තුවක් සාදනු ලැබේ. මෙතෙක් හඳුන්වා දී ඇති ලැයිස්තු ආකාරයේ ක්රම මෙන් නොව, මුල් ලැයිස්තුව නොවෙනස්ව පවතී.
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']