ប្រសិនបើអ្នកចង់ទទួលបានធាតុ n នៃបញ្ជី (អារេ) តាមលំដាប់ពីតម្លៃធំបំផុត ឬតូចបំផុតនៅក្នុង Python និង n=1 អ្នកអាចប្រើមុខងារដែលភ្ជាប់មកជាមួយខាងក្រោម។
max()
min()
ប្រសិនបើ n>1 មានវិធីពីរយ៉ាងដើម្បីតម្រៀបបញ្ជី ឬប្រើម៉ូឌុល heapq នៃបណ្ណាល័យស្តង់ដារ។
- ទទួលបានតម្លៃអតិបរមា និងអប្បបរមា:
max()
,min()
- ទទួលបានធាតុ n តាមលំដាប់នៃតម្លៃអតិបរមា និងអប្បបរមា:តម្រៀប
- ទទួលបានធាតុ n តាមលំដាប់នៃតម្លៃអតិបរមា និងអប្បបរមា:
heapq
ម៉ូឌុល
ប្រសិនបើចំនួនធាតុដែលត្រូវទៅយកគឺមានទំហំធំ វាកាន់តែមានប្រសិទ្ធភាពក្នុងការតម្រៀបពួកវាជាមុនដោយប្រើ sorted() ឬ sort() ហើយប្រសិនបើចំនួនតូចនោះ nargest() និង nsmallest() នៃម៉ូឌុល heapq គឺមានប្រសិទ្ធភាពជាង។
ដើម្បីទទួលបានសន្ទស្សន៍នៃតម្លៃអតិបរមា និងអប្បបរមា សូមប្រើ 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 នៃបញ្ជីតាមលំដាប់លំដោយពីតម្លៃធំបំផុត ឬតូចបំផុត វិធីសាស្ត្រទីមួយគឺតម្រៀប (តម្រៀប) បញ្ជី។
ដើម្បីតម្រៀបបញ្ជី សូមប្រើមុខងារដែលភ្ជាប់មកជាមួយ sorted() ឬវិធី sort() នៃបញ្ជី។ sorted() ត្រឡប់បញ្ជីដែលបានតម្រៀបថ្មី ខណៈពេលដែល sort() រៀបចំឡើងវិញនូវបញ្ជីដើម។
តាមរយៈការផ្លាស់ប្តូរលំដាប់ឡើង/ចុះក្រោមជាមួយនឹងអាគុយម៉ង់បញ្ច្រាស និងជ្រើសរើសចំនួននៃចំណិតណាមួយពីកំពូល អ្នកអាចទទួលបានធាតុ n តាមលំដាប់ពីតម្លៃធំបំផុត/តូចនៃបញ្ជី។
- អត្ថបទដែលទាក់ទង:ការតម្រៀបបញ្ជីនៅក្នុង Python៖ ភាពខុសគ្នារវាងការតម្រៀប និងតម្រៀប
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]
ប្រសិនបើអ្នកមិនចាំការផ្លាស់ប្តូរលំដាប់នៃបញ្ជីដើមទេ អ្នកអាចប្រើវិធី sort()។
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()
អាគុយម៉ង់ទី 1 គឺជាចំនួនធាតុដែលត្រូវទៅយក ហើយអាគុយម៉ង់ទីពីរគឺអាចបកប្រែបាន (បញ្ជី។ ល។ ) ដែលត្រូវកំណត់គោលដៅ។
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]
ដូចដែលខ្ញុំបានសរសេរនៅដើម ប្រសិនបើចំនួនធាតុដែលត្រូវទៅយកគឺធំ វាកាន់តែមានប្រសិទ្ធភាពក្នុងការតម្រៀបពួកវាជាមុនដោយ sorted() ឬ sort() ហើយប្រសិនបើចំនួនតូច nargest() និង nsmallest() នៃ ម៉ូឌុល heapq មានប្រសិទ្ធភាពជាង។