பைத்தானில் உள்ள பெரிய மற்றும் சிறிய மதிப்புகளிலிருந்து ஒரு பட்டியலின் n உறுப்புகளை வரிசையாகப் பெறுதல்

வணிக

பைத்தானில் உள்ள பெரிய அல்லது சிறிய மதிப்பு மற்றும் n=1 ஆகியவற்றிலிருந்து ஒரு பட்டியலின் (வரிசை) n உறுப்புகளை நீங்கள் பெற விரும்பினால், பின்வரும் உள்ளமைக்கப்பட்ட செயல்பாட்டைப் பயன்படுத்தலாம்.

  • max()
  • min()

n>1 எனில், பட்டியலை வரிசைப்படுத்த அல்லது நிலையான நூலகத்தின் heapq தொகுதியைப் பயன்படுத்த இரண்டு வழிகள் உள்ளன.

  • அதிகபட்ச மற்றும் குறைந்தபட்ச மதிப்புகளைப் பெறுங்கள்:max(),min()
  • அதிகபட்ச மற்றும் குறைந்தபட்ச மதிப்பின் வரிசையில் n உறுப்புகளைப் பெறுங்கள்:வகைபடுத்து
  • அதிகபட்ச மற்றும் குறைந்தபட்ச மதிப்பின் வரிசையில் n உறுப்புகளைப் பெறுங்கள்:heapqதொகுதி

மீட்டெடுக்கப்பட வேண்டிய உறுப்புகளின் எண்ணிக்கை அதிகமாக இருந்தால், முதலில் வரிசைப்படுத்தப்பட்ட() அல்லது வரிசை() ஐப் பயன்படுத்தி அவற்றை வரிசைப்படுத்துவது மிகவும் திறமையானது, மேலும் எண்ணிக்கை சிறியதாக இருந்தால், heapq தொகுதியின் nargest() மற்றும் nsmallest() ஆகியவை மிகவும் திறமையானவை.

அதிகபட்ச மற்றும் குறைந்தபட்ச மதிப்புகளின் குறியீடுகளைப் பெற, max(), min() மற்றும் index() ஆகியவற்றைப் பயன்படுத்தவும்.

அதிகபட்ச மற்றும் குறைந்தபட்ச மதிப்புகளைப் பெறுங்கள்:max(),min()

பட்டியலின் அதிகபட்ச மற்றும் குறைந்தபட்ச கூறுகளைப் பெற, உள்ளமைக்கப்பட்ட செயல்பாடுகளான max() மற்றும் min() ஐப் பயன்படுத்தவும்.

l = [3, 6, 7, -1, 23, -10, 18]

print(max(l))
# 23

print(min(l))
# -10

அதிகபட்ச மற்றும் குறைந்தபட்ச மதிப்பின் வரிசையில் n உறுப்புகளைப் பெறவும்: வரிசைப்படுத்தவும்

ஒரு பட்டியலின் n உறுப்புகளை பெரிய அல்லது மிகச்சிறிய மதிப்பிலிருந்து வரிசையாகப் பெற விரும்பினால், பட்டியலை வரிசைப்படுத்துவது (வரிசைப்படுத்துவது) முதல் முறை.

பட்டியலை வரிசைப்படுத்த, உள்ளமைக்கப்பட்ட செயல்பாடு வரிசைப்படுத்தப்பட்ட() அல்லது பட்டியலின் வரிசை() முறையைப் பயன்படுத்தவும். வரிசைப்படுத்தப்பட்ட () புதிய வரிசைப்படுத்தப்பட்ட பட்டியலை வழங்குகிறது, அதே நேரத்தில் வரிசை() அசல் பட்டியலை மறுவரிசைப்படுத்துகிறது.

ஆர்குமெண்ட் ரிவர்ஸ் மூலம் ஏறுவரிசை/இறங்கு வரிசையை மாற்றி, மேலே இருந்து எத்தனை ஸ்லைஸ்களைத் தேர்ந்தெடுப்பதன் மூலம், பட்டியலின் பெரிய/சிறிய மதிப்பிலிருந்து n உறுப்புகளை வரிசையாகப் பெறலாம்.

ld = sorted(l, reverse=True)
print(ld)
# [23, 18, 7, 6, 3, -1, -10]

print(ld[:3])
# [23, 18, 7]

la = sorted(l)
print(la)
# [-10, -1, 3, 6, 7, 18, 23]

print(la[:3])
# [-10, -1, 3]

நீங்கள் அனைத்தையும் ஒரே வரியில் எழுதலாம்.

print(sorted(l, reverse=True)[:3])
# [23, 18, 7]

print(sorted(l)[:3])
# [-10, -1, 3]

அசல் பட்டியலின் வரிசையை மாற்றுவதில் உங்களுக்கு விருப்பமில்லை என்றால், நீங்கள் வரிசை() முறையைப் பயன்படுத்தலாம்.

print(l)
# [3, 6, 7, -1, 23, -10, 18]

l.sort(reverse=True)
print(l[:3])
# [23, 18, 7]

print(l)
# [23, 18, 7, 6, 3, -1, -10]

l.sort()
print(l[:3])
# [-10, -1, 3]

print(l)
# [-10, -1, 3, 6, 7, 18, 23]

அதிகபட்ச மற்றும் குறைந்தபட்ச மதிப்பின் வரிசையில் n உறுப்புகளைப் பெறுங்கள்:heapqதொகுதி

ஒரு பட்டியலின் n உறுப்புகளை பெரிய அல்லது சிறிய மதிப்பிலிருந்து வரிசையாகப் பெற விரும்பினால், நீங்கள் heapq தொகுதியைப் பயன்படுத்தலாம்.

heapq தொகுதியில் பின்வரும் செயல்பாட்டைப் பயன்படுத்தவும். இந்த வழக்கில், அசல் பட்டியல் மாற்றப்படாது.

  • nlargest()
  • nsmallest()

முதல் வாதம் மீட்டெடுக்கப்பட வேண்டிய உறுப்புகளின் எண்ணிக்கையாகும், மேலும் இரண்டாவது வாதமானது மீண்டும் மீண்டும் செய்யக்கூடிய (பட்டியல், முதலியன) இலக்காகும்.

import heapq

l = [3, 6, 7, -1, 23, -10, 18]

print(heapq.nlargest(3, l))
# [23, 18, 7]

print(heapq.nsmallest(3, l))
# [-10, -1, 3]

print(l)
# [3, 6, 7, -1, 23, -10, 18]

நான் ஆரம்பத்தில் எழுதியது போல, மீட்டெடுக்கப்பட வேண்டிய உறுப்புகளின் எண்ணிக்கை அதிகமாக இருந்தால், அவற்றை முதலில் வரிசைப்படுத்தப்பட்ட() அல்லது வரிசை() கொண்டு வரிசைப்படுத்துவது மிகவும் திறமையானது, மேலும் எண் சிறியதாக இருந்தால், சிறிய() மற்றும் nsmallest() heapq தொகுதி மிகவும் திறமையானது.

Copied title and URL