പൈത്തൺ നിഘണ്ടു ഡാറ്റ ഘടന പഠിക്കുക - ഭാഗം 3


പൈത്തൺ ഡാറ്റാ സ്ട്രക്ചർ സീരീസിന്റെ ഈ ഭാഗം 3-ൽ, എന്താണ് ഒരു നിഘണ്ടു, പൈത്തണിലെ മറ്റ് ഡാറ്റാ ഘടനയിൽ നിന്ന് അത് എങ്ങനെ വ്യത്യാസപ്പെട്ടിരിക്കുന്നു, നിഘണ്ടു ഒബ്ജക്റ്റുകൾ എങ്ങനെ സൃഷ്ടിക്കാം, ഇല്ലാതാക്കാം, ഡിക്ഷണറി ഒബ്uജക്റ്റുകളുടെ രീതികൾ എന്നിവ ഞങ്ങൾ ചർച്ച ചെയ്യും.

  • നിഘണ്ടു എന്നത് \കീ: മൂല്യം ജോഡികളുടെ ഒരു ശേഖരമായ \പൈത്തൺ ഡാറ്റ സ്ട്രക്ചറിന്റെ അന്തർനിർമ്മിത നിർവ്വഹണമാണ്.
  • അർദ്ധവിരാമമായ {Key : Value} കൊണ്ട് വേർതിരിച്ച കീയും മൂല്യവും ഉള്ള ചുരുണ്ട ബ്രേസുകൾ ഉപയോഗിച്ചാണ് നിഘണ്ടു സൃഷ്ടിക്കുന്നത്.
  • ലിസ്റ്റിന് സമാനമായി, നിഘണ്ടുക്കൾ ഒബ്uജക്uറ്റുകൾ മാറ്റാവുന്ന ഡാറ്റാ തരമാണ്, അതായത് നിഘണ്ടു സൃഷ്uടിച്ചുകഴിഞ്ഞാൽ ഒബ്uജക്uറ്റുകൾ പരിഷ്uക്കരിക്കാനാകും.
  • പൈത്തണിലെ നിഘണ്ടു നിർവ്വഹണത്തിന്റെ നിർമ്മാണം പൊതുവെ \അസോസിയേറ്റീവ് അറേ എന്നാണ് അറിയപ്പെടുന്നത്.
  • ലിസ്റ്റിലോ ട്യൂപ്പിലുകളിലോ, ലിസ്റ്റിനുള്ളിലെ ഇനങ്ങൾ ക്രമീകരിച്ചിരിക്കുന്നതിനാൽ (അതായത്, അവ സൃഷ്ടിച്ച ക്രമത്തിൽ സംഭരിച്ചിരിക്കുന്നവ) ഇനങ്ങളുടെ സൂചിക സ്ഥാനങ്ങൾ പരാമർശിച്ച് നമുക്ക് ഇനങ്ങൾ ആക്uസസ് ചെയ്യാൻ കഴിയും. നിഘണ്ടു ഒബ്uജക്uറ്റുകൾ അതിന്റെ അനുബന്ധ \കീ ഉപയോഗിച്ച് ആക്uസസ് ചെയ്uതതിനാൽ ഏത് ക്രമത്തിലും ആകാം.
  • ഒബ്uജക്uറ്റുകൾ സംഭരിക്കുകയും പേരുനൽകുകയും ചെയ്യേണ്ടിവരുമ്പോൾ നിഘണ്ടുക്കൾ വളരെ ഉപയോഗപ്രദമാണ്.
  • നിഘണ്ടു \കീ ഒബ്ജക്റ്റ് തനതായതും മാറ്റമില്ലാത്തതുമായ തരമായിരിക്കണം.
  • നിഘണ്ടു \കീ ഒബ്ജക്റ്റ് ഒന്നുകിൽ സ്ട്രിംഗ്, പൂർണ്ണസംഖ്യ, ഫ്ലോട്ടിംഗ് മൂല്യങ്ങൾ ആകാം.
  • നിഘണ്ടു \മൂല്യങ്ങൾ ഏത് ഡാറ്റ തരത്തിലുമാകാം.

നിഘണ്ടു ഒബ്ജക്റ്റ് നിർമ്മിക്കുക

അർദ്ധവിരാമം വേർതിരിക്കുന്ന കീയും മൂല്യ ജോഡിയും \{Key:value} അല്ലെങ്കിൽ \dict()” കൺസ്ട്രക്റ്റർ രീതി ഉപയോഗിച്ച് ചുരുണ്ട ബ്രേസുകൾ ഉപയോഗിച്ച് നിഘണ്ടു ഒബ്ജക്റ്റ് സൃഷ്ടിക്കാൻ കഴിയും.

പ്രകടമാക്കാൻ, ഫുട്ബോൾ ടീമിനെയും അവരുടെ പ്ലേയിംഗ് ഇലവനെയും കുറിച്ചുള്ള വിവരങ്ങൾ കീയായും കളിക്കാരുടെ പേരുകൾ മൂല്യങ്ങളായും സംഭരിക്കുന്ന ഒരു നിഘണ്ടു ഞാൻ സൃഷ്ടിക്കാൻ പോകുന്നു.

ഒരു നിഘണ്ടു ഒബ്uജക്റ്റ് നിർമ്മിക്കാൻ നിങ്ങൾക്ക് കൺസ്ട്രക്റ്റർ രീതി dict() ഉപയോഗിക്കാം.

ഡിക്റ്റണറി ഒബ്ജക്റ്റ് ആക്സസ് ചെയ്യുക

ഇൻഡെക്uസിംഗ് ചെയ്യുന്നതിനുപകരം \കീ റഫറൻസുകൾ ഉപയോഗിച്ചാണ് നിഘണ്ടു ഇനങ്ങൾ ആക്uസസ് ചെയ്യുന്നത്. നിഘണ്ടുവിനുള്ളിൽ നമുക്ക് ഏതെങ്കിലും സീക്വൻസ് ഡാറ്റാ തരം (സ്ട്രിംഗ്, ലിസ്റ്റ്, ട്യൂപ്പിൾസ് മുതലായവ) ഉണ്ടെങ്കിൽ, ഇൻഡെക്uസിംഗ് ഉപയോഗിക്കാൻ കഴിയും.

dic_object[\key] ഉപയോഗിച്ച് ഇനങ്ങൾ ആക്uസസ് ചെയ്യാൻ കഴിയും.

നിങ്ങൾ ഇൻഡെക്uസിംഗ് ഉപയോഗിച്ച് നിഘണ്ടു ഇനങ്ങൾ ആക്uസസ് ചെയ്യാൻ ശ്രമിക്കുകയാണെങ്കിൽ അല്ലെങ്കിൽ നിഘണ്ടുവിന്റെ ഭാഗമല്ലാത്ത ഒരു \കീ ആക്uസസ് ചെയ്യാൻ ശ്രമിക്കുകയാണെങ്കിൽ \KeyError ഉയർത്തപ്പെടും.

നിഘണ്ടു ഒബ്ജക്റ്റ് പരിഷ്ക്കരിച്ച് ഇല്ലാതാക്കുക

നിങ്ങൾക്ക് അതിന്റെ കീ Dictionary_object[\key] = മൂല്യം നേരിട്ട് പരാമർശിച്ചുകൊണ്ട് നിലവിലുള്ള ഇനം പരിഷ്uക്കരിക്കുകയോ പുതിയ ഇനം ചേർക്കുകയോ ചെയ്യാം.

ബിൽറ്റ്-ഇൻ \del കീവേഡ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഒരു പ്രത്യേക മൂല്യം അതിന്റെ കീയെ അടിസ്ഥാനമാക്കി ഇല്ലാതാക്കാം അല്ലെങ്കിൽ ഒരു കീ ഇല്ലാതാക്കാം അല്ലെങ്കിൽ നെയിംസ്പേസിൽ നിന്ന് നിഘണ്ടു ഒബ്ജക്റ്റ് ഇല്ലാതാക്കാം.

നിഘണ്ടു ഒബ്uജക്റ്റിനായി ലഭ്യമായ രീതികളും ആട്രിബ്യൂട്ടുകളും നോക്കുന്നതിന് നിങ്ങൾക്ക് ബിൽറ്റ്-ഇൻ \dir() ഫംഗ്uഷൻ ഉപയോഗിക്കാം.

clear() - ഈ രീതി നിഘണ്ടു ഒബ്ജക്റ്റിൽ നിന്ന് എല്ലാ ഇനങ്ങളും നീക്കം ചെയ്യും. ഈ രീതി ഒരു വാദവും എടുക്കുന്നില്ല.

പകർത്തുക() - ഇത് ഒരു നിഘണ്ടു ഒബ്uജക്റ്റിന്റെ ആഴം കുറഞ്ഞ പകർപ്പ് തിരികെ നൽകും. കോപ്പി() രീതി പാരാമീറ്ററുകളൊന്നും ഒരു ആർഗ്യുമെന്റായി എടുക്കുന്നില്ല.

കീകൾ() - നിഘണ്ടു കീ ഒബ്uജക്uറ്റായി നിഘണ്ടുവിൽ ലഭ്യമായ കീകൾക്കായുള്ള വ്യൂ ഒബ്uജക്റ്റ് ഈ രീതി നൽകുന്നു. ഈ രീതി ഒരു വാദവും എടുക്കുന്നില്ല.

മൂല്യങ്ങൾ() - ഈ രീതി നിഘണ്ടു ഒബ്ജക്റ്റിൽ നിന്നുള്ള മൂല്യങ്ങൾക്കായി ഒരു വ്യൂ ഒബ്ജക്റ്റ് നൽകുന്നു. ഈ രീതി ഒരു വാദവും എടുക്കുന്നില്ല.

ഇനങ്ങൾ() - ഈ രീതി നിഘണ്ടു ഒബ്uജക്റ്റിൽ നിന്ന് ഒരു ട്യൂപ്പിൾ (കീ, മൂല്യം) ജോഡി നൽകുന്നു.

Setdefault() - ഈ രീതി ഒരു നിഘണ്ടുവിൽ നൽകിയിരിക്കുന്ന കീ തിരയുന്നു. നിഘണ്ടുവിൽ കീ കണ്ടെത്തിയില്ലെങ്കിൽ, അത് നിഘണ്ടുവിൽ ചേർക്കും.
ഇതിന് 2 ആർഗ്യുമെന്റുകൾ ആവശ്യമാണ് dic.setdefault(കീ,[,ഡിഫോൾട്ട് മൂല്യം]).

മൂല്യങ്ങളൊന്നും വ്യക്തമാക്കിയിട്ടില്ലെങ്കിൽ, സ്ഥിര മൂല്യം ഒന്നുമില്ല എന്ന് സജ്ജീകരിച്ചിരിക്കുന്നു.

get() - ഒരു നിഘണ്ടുവിൽ കീ ലഭ്യമാണെങ്കിൽ ഈ രീതി നിർദ്ദിഷ്ട കീയുടെ മൂല്യം നൽകുന്നു.

Syntax dict.get(key[, value]) 

ഈ രീതി 2 ആർഗ്യുമെന്റുകൾ എടുക്കുന്നു. ആദ്യം നൽകിയിരിക്കുന്ന ഇൻപുട്ട് ആർഗ്യുമെന്റ് നിഘണ്ടുവിൽ നൽകിയിരിക്കുന്ന കീ തിരയുകയും കീയുടെ മൂല്യം തിരികെ നൽകുകയും ചെയ്യും. ഒരു കീ കണ്ടെത്തിയില്ലെങ്കിൽ രണ്ടാമത്തെ ആർഗ്യുമെന്റ് മൂല്യം നൽകും. സ്ഥിരസ്ഥിതി റിട്ടേൺ മൂല്യം \ഒന്നുമില്ല എന്ന് സജ്ജീകരിച്ചിരിക്കുന്നു.

അപ്uഡേറ്റ്() - കീ നിഘണ്ടുവിൽ ഇല്ലെങ്കിൽ അപ്uഡേറ്റ് രീതി നിഘണ്ടുവിലേക്ക് ഇനങ്ങൾ ചേർക്കുക. കീ കണ്ടെത്തിയാൽ, പുതിയ മൂല്യം ഉപയോഗിച്ച് കീ അപ്ഡേറ്റ് ചെയ്യപ്പെടും. അപ്uഡേറ്റ് രീതി k: v ജോഡിയുടെ മറ്റൊരു നിഘണ്ടു ഒബ്uജക്uറ്റ് അല്ലെങ്കിൽ k: v ജോഡി ട്യൂപ്പിൾസ് പോലെയുള്ള ഇറ്ററബിൾ ഒബ്uജക്റ്റ് സ്വീകരിക്കുന്നു.

നിഘണ്ടു ഒബ്ജക്റ്റ് നീക്കംചെയ്യുന്നു/ഇല്ലാതാക്കുന്നു

Pop() - ഈ രീതി ഇൻപുട്ടായി കീയെ അടിസ്ഥാനമാക്കിയുള്ള മൂല്യം നീക്കം ചെയ്യുകയും നീക്കം ചെയ്ത മൂല്യം തിരികെ നൽകുകയും ചെയ്യുന്നു.

ഈ രീതി രണ്ട് പരാമീറ്ററുകൾ സ്വീകരിക്കുന്നു.

  1. കീ - നിഘണ്ടു ഒബ്uജക്റ്റിൽ തിരയേണ്ട കീ.
  2. ഡിഫോൾട്ട് - നിഘണ്ടുവിൽ കീ കാണുന്നില്ലെങ്കിൽ റിട്ടേൺ മൂല്യം വ്യക്തമാക്കും.

കുറിപ്പ് നിഘണ്ടുവിൽ കീ കണ്ടെത്തിയില്ലെങ്കിൽ സ്ഥിരസ്ഥിതി മൂല്യം വ്യക്തമാക്കുന്നതിൽ പരാജയപ്പെടുകയാണെങ്കിൽ \KeyError ഉയർത്തപ്പെടും.

Popitem() - നിഘണ്ടു ഒബ്uജക്uറ്റിൽ നിന്ന് ഒരു ഏകപക്ഷീയ ഘടകങ്ങൾ നീക്കംചെയ്യുന്നു. നിഘണ്ടു ശൂന്യമാണെന്ന് പറഞ്ഞാൽ, ഒരു വാദവും അംഗീകരിക്കപ്പെടുന്നില്ല, അത് \കീ പിശക് നൽകുന്നു.

ലിസ്uറ്റും ട്യൂപ്പിൾസും പോലെ, നിഘണ്ടു ഒബ്uജക്uറ്റിലെ ഇനങ്ങൾ നീക്കംചെയ്യാനോ നെയിംസ്uപെയ്uസിൽ നിന്ന് നിഘണ്ടു ഒബ്uജക്റ്റ് നീക്കംചെയ്യാനോ നമുക്ക് ഒരു ഡെൽ കീവേഡ് ഉപയോഗിക്കാം.

എന്താണ് നിഘണ്ടുവെന്നും പൈത്തണിലെ മറ്റ് ഡാറ്റാ ഘടനകളിൽ നിന്ന് അത് എങ്ങനെ വ്യത്യാസപ്പെട്ടിരിക്കുന്നുവെന്നും ഈ ലേഖനത്തിൽ നിങ്ങൾ കണ്ടു. നിഘണ്ടു ഒബ്uജക്റ്റുകൾ എങ്ങനെ സൃഷ്uടിക്കാമെന്നും ആക്uസസ് ചെയ്യാമെന്നും പരിഷ്uക്കരിക്കാമെന്നും ഇല്ലാതാക്കാമെന്നും നിങ്ങൾ കണ്ടിട്ടുണ്ട്.

ഒരു പേരിനെ അടിസ്ഥാനമാക്കി ഡാറ്റ സംഭരിക്കുകയും അതിന്റെ പേര് ഉപയോഗിച്ച് അവയെ റഫർ ചെയ്യുകയും ചെയ്യേണ്ട സമയത്താണ് നിഘണ്ടുവിന്റെ ഒപ്റ്റിമൽ ഉപയോഗ കേസ്. അടുത്ത ലേഖനത്തിൽ, ഞങ്ങൾ മറ്റൊരു തരം പൈത്തൺ ബിൽറ്റ്-ഇൻ ഡാറ്റാ ഘടന \സെറ്റ്/ഫ്രോസൺസെറ്റ് കാണും. അതുവരെ നിങ്ങൾക്ക് നിഘണ്ടുക്കളെ കുറിച്ച് ഇവിടെ കൂടുതൽ വായിക്കാം.