បន្ថែមធាតុទៅវចនានុក្រមនិងចូលរួមវចនានុក្រមក្នុង Python

អាជីវកម្ម

ផ្នែកនេះពន្យល់ពីវិធីបន្ថែមធាតុថ្មីទៅវចនានុក្រម (វត្ថុប្រភេទវត្ថុ) ឬធ្វើបច្ចុប្បន្នភាពតម្លៃនៃធាតុដែលមានស្រាប់នៅក្នុង Python ។ វាក៏អាចធ្វើទៅបានដើម្បីបូកសរុបវចនានុក្រម (ចូលរួម, បញ្ចូលគ្នា) ច្រើន។

  • បន្ថែមនិងធ្វើបច្ចុប្បន្នភាពធាតុទៅវចនានុក្រមដោយបញ្ជាក់កូនសោ។
  • ការរួមបញ្ចូលគ្នា (បញ្ចូលគ្នា) នៃវចនានុក្រមជាច្រើន៖ ធ្វើបច្ចុប្បន្នភាព (), | ប្រតិបត្តិករ, | = ប្រតិបត្តិករ
  • បន្ថែមឬធ្វើបច្ចុប្បន្នភាពធាតុជាច្រើន: ធ្វើបច្ចុប្បន្នភាព (), | = ប្រតិបត្តិករ

បន្ថែមនិងធ្វើបច្ចុប្បន្នភាពធាតុទៅវចនានុក្រមដោយបញ្ជាក់កូនសោ។

អ្នកអាចបន្ថែម / ធ្វើបច្ចុប្បន្នភាពធាតុវចនានុក្រមតាមរបៀបដូចខាងក្រោម។

វត្ថុវចនានុក្រម [កូនសោ] = តម្លៃ

នៅពេលកូនសោដែលមិនមានត្រូវបានបញ្ជាក់ធាតុថ្មីត្រូវបានបន្ថែមហើយនៅពេលដែលកូនសោដែលមានស្រាប់ត្រូវបានបញ្ជាក់តម្លៃដែលមានស្រាប់ត្រូវបានធ្វើបច្ចុប្បន្នភាព (សរសេរជាន់លើ) ។

d = {'k1': 1, 'k2': 2}

d['k3'] = 3
print(d)
# {'k1': 1, 'k2': 2, 'k3': 3}

d['k1'] = 100
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3}

ប្រសិនបើអ្នកមិនចង់ធ្វើបច្ចុប្បន្នភាពតម្លៃនៃកូនសោដែលមានសូមប្រើវិធីសាស្ត្រកំណត់សំណុំ () ។

Concatenate (បញ្ចូលគ្នា) វចនានុក្រមច្រើន៖ update (), | ប្រតិបត្តិករ, | = ប្រតិបត្តិករ

update()

ប្រសិនបើវត្ថុវចនានុក្រមមួយផ្សេងទៀតត្រូវបានបញ្ជាក់ជាអាគុយម៉ង់មួយចំពោះការធ្វើបច្ចុប្បន្នភាពវិធីសាស្ត្រ () របស់ធាតុវចនានុក្រមធាតុទាំងអស់នឹងត្រូវបានបន្ថែម។

ប្រសិនបើកូនសោត្រួតលើគ្នាជាមួយកូនសោដែលមានស្រាប់វានឹងត្រូវបានសរសេរជាន់លើតម្លៃនៃវចនានុក្រមដែលបានបញ្ជាក់នៅក្នុងអាគុយម៉ង់។

d1 = {'k1': 1, 'k2': 2}
d2 = {'k1': 100, 'k3': 3, 'k4': 4}

d1.update(d2)
print(d1)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

វាគឺជាកំហុសក្នុងការបញ្ជាក់វចនានុក្រមច្រើននៅក្នុងអាគុយម៉ង់ធ្វើឱ្យទាន់សម័យ () ។

d1 = {'k1': 1, 'k2': 2}
d2 = {'k3': 3, 'k4': 4}
d3 = {'k5': 5, 'k6': 6}

# d1.update(d2, d3)
# TypeError: update expected at most 1 arguments, got 2

ដូចដែលបានពន្យល់នៅពេលក្រោយការធ្វើបច្ចុប្បន្នភាព () អាចបន្ថែមធាតុថ្មីជាអាគុយម៉ង់ពាក្យគន្លឹះ (គន្លឹះ = តម្លៃ) ដូច្នេះគ្រាន់តែបន្ថែម ** ទៅវចនានុក្រមនិងពង្រីកធាតុនីមួយៗជាអាគុយម៉ង់ពាក្យគន្លឹះហើយហុចវា។

d1.update(**d2, **d3)
print(d1)
# {'k1': 1, 'k2': 2, 'k3': 3, 'k4': 4, 'k5': 5, 'k6': 6}

ដូចក្នុងឧទាហរណ៍មុន ៗ ការប្រើបច្ចុប្បន្នភាព () នឹងធ្វើបច្ចុប្បន្នភាពវត្ថុវចនានុក្រមដើម។

ប្រសិនបើអ្នកចង់បង្កើតវចនានុក្រមថ្មីមួយដោយបញ្ចូលវចនានុក្រមច្រើនប្រើ {** d1, ** d2} (ពី Python ៣.៥) ឬ dict (** d1, ** d2) ។

នៅក្នុង Python 3.9 និងក្រោយមកវាក៏អាចបង្កើតវចនានុក្រមថ្មីមួយដោយប្រើអក្សរ | ប្រតិបត្តិករពិពណ៌នាបន្ទាប់។

| ប្រតិបត្តិករ, = ប្រតិបត្តិករ (Python ៣.៩ និងក្រោយ)

ចាប់តាំងពី Python 3.9 វាអាចបញ្ចូលវចនានុក្រមពីរដោយប្រើ the ប្រតិបត្តិករ។ នៅពេលវចនានុក្រមពីរមានគន្លឹះតែមួយតម្លៃនៅខាងស្តាំមានអាទិភាព។

d1 = {'k1': 1, 'k2': 2}
d2 = {'k1': 100, 'k3': 3, 'k4': 4}

print(d1 | d2)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

print(d2 | d1)
# {'k1': 1, 'k3': 3, 'k4': 4, 'k2': 2}

| វាក៏អាចបញ្ចូលគ្នានូវវចនានុក្រមជាច្រើនដោយប្រើស៊េរីនៃប្រតិបត្តិករ។

d1 = {'k1': 1, 'k2': 2}
d2 = {'k3': 3, 'k4': 4}
d3 = {'k5': 5, 'k6': 6}

print(d1 | d2 | d3)
# {'k1': 1, 'k2': 2, 'k3': 3, 'k4': 4, 'k5': 5, 'k6': 6}

+ ដូចការធ្វើបច្ចុប្បន្នភាព () វត្ថុនៅខាងឆ្វេងត្រូវបានធ្វើបច្ចុប្បន្នភាព។

d1 = {'k1': 1, 'k2': 2}
d2 = {'k1': 100, 'k3': 3, 'k4': 4}

d1 |= d2
print(d1)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

បន្ថែមឬធ្វើបច្ចុប្បន្នភាពធាតុជាច្រើន: ធ្វើបច្ចុប្បន្នភាព (), | = ប្រតិបត្តិករ

update()

នៅពេលដែលអាគុយម៉ង់ពាក្យគន្លឹះ = តម្លៃត្រូវបានបញ្ជាក់នៅក្នុងវិធីសាស្រ្តធ្វើឱ្យទាន់សម័យ () គន្លឹះគន្លឹះនិងតម្លៃតម្លៃនឹងត្រូវបានបន្ថែម ប្រសិនបើកូនសោត្រួតលើគ្នាជាមួយកូនសោដែលមានស្រាប់នោះវានឹងត្រូវបានសរសេរជាន់លើតម្លៃដែលបានបញ្ជាក់នៅក្នុងអាគុយម៉ង់។

d = {'k1': 1, 'k2': 2}

d.update(k1=100, k3=3, k4=4)
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

វាក៏អាចបញ្ជាក់បញ្ជី (គន្លឹះតម្លៃ) ជាអាគុយម៉ង់ចំពោះវិធីសាស្ត្រធ្វើបច្ចុប្បន្នភាព () ។ ប្រសិនបើកូនសោត្រួតលើគ្នាជាមួយកូនសោដែលមានស្រាប់នោះវានឹងត្រូវបានសរសេរជាន់លើតម្លៃដែលបានបញ្ជាក់ជាអាគុយម៉ង់។

d = {'k1': 1, 'k2': 2}

d.update([('k1', 100), ('k3', 3), ('k4', 4)])
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

នៅក្នុងការរួមបញ្ចូលគ្នាជាមួយមុខងារហ្ស៊ីប () ធាតុអាចត្រូវបានបន្ថែមពីបញ្ជីនៃកូនសោនិងបញ្ជីតម្លៃ។

d = {'k1': 1, 'k2': 2}

keys = ['k1', 'k3', 'k4']
values = [100, 3, 4]

d.update(zip(keys, values))
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

| = ប្រតិបត្តិករ (ពស់ថ្លាន់ ៣.៩ និងខ្ពស់ជាងនេះ)

ជាមួយសញ្ញាប្រមាណវិធី | = បញ្ជី (កូនសោតម្លៃ) អាចត្រូវបានបញ្ជាក់នៅផ្នែកខាងស្តាំ។

d = {'k1': 1, 'k2': 2}

d |= [('k1', 100), ('k3', 3), ('k4', 4)]
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

ចំណាំថាការបញ្ជាក់បញ្ជីដោយប្រើឯកសារ | ប្រតិបត្តិករនឹងមានកំហុស។ មានតែប្រតិបត្ដិការវចនានុក្រមទៅវចនានុក្រមប៉ុណ្ណោះដែលត្រូវបានគាំទ្រ។

# print(d | [('k1', 100), ('k3', 3), ('k4', 4)])
# TypeError: unsupported operand type(s) for |: 'dict' and 'list'