ផ្នែកនេះពន្យល់ពីវិធីបន្ថែមធាតុថ្មីទៅវចនានុក្រម (វត្ថុប្រភេទវត្ថុ) ឬធ្វើបច្ចុប្បន្នភាពតម្លៃនៃធាតុដែលមានស្រាប់នៅក្នុង 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'