Python ដោយប្រើអនុគមន៍ enumerate()៖ ទទួលបានធាតុ និងសន្ទស្សន៍នៃបញ្ជី

អាជីវកម្ម

ដោយប្រើមុខងារ enumerate() របស់ Python អ្នកអាចទទួលបានលេខលិបិក្រម (រាប់, លំដាប់) ក៏ដូចជាធាតុនៃវត្ថុដែលអាចបំលែងបានដូចជា បញ្ជី ឬ tuple ក្នុងរង្វិលជុំ។

អត្ថបទនេះពន្យល់ពីមូលដ្ឋានគ្រឹះនៃអនុគមន៍ enumerate()។

  • អនុគមន៍​ដើម្បី​ទទួល​លិបិក្រម​ក្នុង​សម្រាប់​រង្វិលជុំ:enumerate()
    • ធម្មតាសម្រាប់រង្វិលជុំ
    • សម្រាប់រង្វិលជុំដោយប្រើអនុគមន៍ enumerate()
  • ចាប់ផ្តើមលិបិក្រមនៃអនុគមន៍ enumerate() នៅ 1 (តម្លៃមិនសូន្យ)
  • បញ្ជាក់ការបង្កើន (ជំហាន)

អនុគមន៍ enumerate() អាច​ត្រូវ​បាន​ប្រើ​ដើម្បី​ទទួល​បាន​លិបិក្រម​ក្នុង​សម្រាប់​រង្វិលជុំ។

ធម្មតាសម្រាប់រង្វិលជុំ

l = ['Alice', 'Bob', 'Charlie']

for name in l:
    print(name)
# Alice
# Bob
# Charlie

សម្រាប់រង្វិលជុំដោយប្រើអនុគមន៍ enumerate()

បញ្ជាក់​វត្ថុ​ដែល​អាច​ប្រើ​វា​បាន​ដូច​ជា​បញ្ជី​ជា​អាគុយម៉ង់​នៃ​អនុគមន៍ enumerate()។

អ្នកអាចទទួលបានលេខសន្ទស្សន៍ និងធាតុនៅក្នុងលំដាប់នោះ។

for i, name in enumerate(l):
    print(i, name)
# 0 Alice
# 1 Bob
# 2 Charlie

ចាប់ផ្តើមលិបិក្រមនៃអនុគមន៍ enumerate() នៅ 1 (តម្លៃមិនសូន្យ)

ដូចដែលបានបង្ហាញក្នុងឧទាហរណ៍ខាងលើ តាមលំនាំដើម សន្ទស្សន៍នៃអនុគមន៍ enumerate() ចាប់ផ្តើមពី 0 ។

ប្រសិនបើអ្នកចង់ចាប់ផ្តើមដោយលេខផ្សេងក្រៅពី 0 សូមបញ្ជាក់លេខចាប់ផ្តើមដោយបំពានជាអាគុយម៉ង់ទីពីរនៃអនុគមន៍ enumerate()។

ដើម្បីចាប់ផ្តើមពីដំបូង សូមធ្វើដូចខាងក្រោម។

for i, name in enumerate(l, 1):
    print(i, name)
# 1 Alice
# 2 Bob
# 3 Charlie

ជាការពិតណាស់អ្នកអាចចាប់ផ្តើមជាមួយលេខផ្សេងទៀត។

for i, name in enumerate(l, 42):
    print(i, name)
# 42 Alice
# 43 Bob
# 44 Charlie

មានប្រយោជន៍នៅពេលអ្នកចង់បង្កើតខ្សែអក្សរតាមលំដាប់លំដោយ។ វាឆ្លាតជាងក្នុងការបញ្ជាក់លេខចាប់ផ្តើមជាអាគុយម៉ង់ទីពីរនៃអនុគមន៍ enumerate() ជាជាងប្រើ ‘i+1’ ដើម្បីចាប់ផ្តើមពី 1។

for i, name in enumerate(l, 1):
    print('{:03}_{}'.format(i, name))
# 001_Alice
# 002_Bob
# 003_Charlie

សូមមើលអត្ថបទខាងក្រោមសម្រាប់ព័ត៌មានបន្ថែមអំពីមុខងារទម្រង់ ដែលត្រូវបានប្រើដើម្បីបំពេញលេខដោយលេខសូន្យ។

បញ្ជាក់ការបង្កើន (ជំហាន)

មិនមានអំណះអំណាងដើម្បីបញ្ជាក់ជំហានបន្ថែមនៅក្នុងអនុគមន៍ enumerate() ទេ ប៉ុន្តែវាអាចត្រូវបានសម្រេចដោយធ្វើដូចខាងក្រោម

step = 3
for i, name in enumerate(l):
    print(i * step, name)
# 0 Alice
# 3 Bob
# 6 Charlie