പൈത്തൺ ലൂപ്പുകൾ മനസ്സിലാക്കുന്നു:
പൈത്തണിൽ ഫോർ ലൂപ്പ് ഉപയോഗിച്ച് ഒരു സീക്വൻസിലൂടെ ആവർത്തിക്കുമ്പോൾ, ഇൻഡെക്സ് മൂല്യം ആക്സസ് ചെയ്യുന്നത് പല ജോലികൾക്കും അത്യന്താപേക്ഷിതമാണ്. നിങ്ങൾ ലിസ്റ്റുകൾ, ട്യൂപ്പിൾസ് അല്ലെങ്കിൽ മറ്റ് ആവർത്തന വസ്തുക്കളുമായി പ്രവർത്തിക്കുകയാണെങ്കിലും, നിലവിലെ ഇനത്തിൻ്റെ സൂചിക അറിയുന്നത്, ഇനങ്ങൾ അവയുടെ സ്ഥാനത്തെ അടിസ്ഥാനമാക്കി പരിഷ്ക്കരിക്കുക അല്ലെങ്കിൽ ഒരു പ്രത്യേക ഫോർമാറ്റിൽ പ്രിൻ്റ് ചെയ്യുന്നത് പോലുള്ള വിവിധ സാഹചര്യങ്ങളിൽ സഹായിക്കും.
ഈ ഗൈഡിൽ, പൈത്തണിലെ ഒരു സീക്വൻസിലൂടെ ലൂപ്പ് ചെയ്യുമ്പോൾ സൂചിക മൂല്യം ആക്സസ് ചെയ്യുന്നതിനുള്ള വ്യത്യസ്ത വഴികൾ ഞങ്ങൾ പര്യവേക്ഷണം ചെയ്യും. ഈ രീതികൾ ചിത്രീകരിക്കുന്നതിന് ഞങ്ങൾ ഉദാഹരണങ്ങൾ ഉപയോഗിക്കും, നിങ്ങളുടെ സ്വന്തം പ്രോജക്റ്റുകളിൽ അവ ഫലപ്രദമായി പ്രയോഗിക്കാൻ കഴിയുമെന്ന് ഉറപ്പാക്കും. ഈ ലേഖനത്തിൻ്റെ അവസാനത്തോടെ, നിങ്ങളുടെ ലൂപ്പുകളിലെ ഇൻഡെക്സ് മൂല്യങ്ങൾ ആത്മവിശ്വാസത്തോടെ കൈകാര്യം ചെയ്യാനും ഉപയോഗിക്കാനും നിങ്ങൾക്ക് കഴിയും.
കമാൻഡ് | വിവരണം |
---|---|
enumerate() | ഒരു ഐറ്ററബിൾ എന്നതിലേക്ക് ഒരു കൌണ്ടർ ചേർക്കുകയും അതിനെ ഒരു എണ്ണൽ വസ്തുവായി തിരികെ നൽകുകയും ചെയ്യുന്ന ഒരു ബിൽറ്റ്-ഇൻ ഫംഗ്ഷൻ. |
start | ആരംഭ സൂചിക മൂല്യം വ്യക്തമാക്കുന്നതിന് enumerate() ഉപയോഗിച്ച് ഒരു ആർഗ്യുമെൻ്റ്. |
range() | സംഖ്യകളുടെ ഒരു ശ്രേണി സൃഷ്ടിക്കുന്ന ഒരു ബിൽറ്റ്-ഇൻ ഫംഗ്ഷൻ, പലപ്പോഴും ഒരു നിശ്ചിത എണ്ണം തവണ ലൂപ്പുചെയ്യാൻ ഉപയോഗിക്കുന്നു. |
len() | ഒരു ഒബ്ജക്റ്റിൻ്റെ ദൈർഘ്യം നൽകുന്ന ഒരു ബിൽറ്റ്-ഇൻ ഫംഗ്ഷൻ. |
format() | ഒരു സ്ട്രിംഗിൽ നിർദ്ദിഷ്ട മൂല്യങ്ങൾ ഫോർമാറ്റ് ചെയ്യാൻ ഉപയോഗിക്കുന്ന ഒരു സ്ട്രിംഗ് രീതി. |
+= | ഒരു ഇൻക്രിമെൻ്റ് ഓപ്പറേറ്റർ ഒരു വേരിയബിളിലേക്ക് ഒരു മൂല്യം ചേർക്കുകയും ആ വേരിയബിളിലേക്ക് ഫലം നൽകുകയും ചെയ്യുന്നു. |
പൈത്തൺ ലൂപ്പ് ഇൻഡക്സിംഗിൻ്റെ വിശദമായ വിശദീകരണം
ആദ്യ സ്ക്രിപ്റ്റിൽ, ഞങ്ങൾ ഉപയോഗിക്കുന്നത് enumerate() ലിസ്റ്റിലൂടെ ലൂപ്പ് ചെയ്യുന്നതിനുള്ള പ്രവർത്തനം xs ഒരേസമയം സൂചികയുടെ ട്രാക്ക് സൂക്ഷിക്കുമ്പോൾ. ദി start എന്ന വാദം enumerate() 1 ആയി സജ്ജീകരിച്ചിരിക്കുന്നു, സ്ഥിരസ്ഥിതി 0 ന് പകരം സൂചിക 1 ൽ നിന്ന് ആരംഭിക്കുന്നുവെന്ന് ഉറപ്പാക്കുന്നു. enumerate() ഫംഗ്ഷൻ സൂചികയുടെയും മൂല്യത്തിൻ്റെയും ജോഡികൾ നൽകുന്നു, അത് ഞങ്ങൾ അൺപാക്ക് ചെയ്യുന്നു index ഒപ്പം x ലൂപ്പ് ഹെഡറിൽ. ദി print ഫംഗ്ഷൻ, ആവശ്യമുള്ള ഔട്ട്പുട്ട് ഫോർമാറ്റ് അനുസരിച്ച് ഈ മൂല്യങ്ങൾ ഫോർമാറ്റ് ചെയ്യുകയും ഔട്ട്പുട്ട് ചെയ്യുകയും ചെയ്യുന്നു.
സൂചിക സ്വമേധയാ ട്രാക്ക് ചെയ്യുന്നതിലൂടെ രണ്ടാമത്തെ സ്ക്രിപ്റ്റ് അതേ ഫലം കൈവരിക്കുന്നു. ഞങ്ങൾ സമാരംഭിക്കുന്നു index ലൂപ്പ് ആരംഭിക്കുന്നതിന് മുമ്പ് 1 വരെ. ലൂപ്പിനുള്ളിൽ, ഞങ്ങൾ നിലവിലെ സൂചികയും മൂല്യവും ഉപയോഗിച്ച് പ്രിൻ്റ് ചെയ്യുന്നു format സ്ട്രിംഗുകളുടെ രീതി, തുടർന്ന് വർദ്ധനവ് index 1 ഉപയോഗിച്ച് += ഓപ്പറേറ്റർ. മൂന്നാമത്തെ സ്ക്രിപ്റ്റ് ഉപയോഗിക്കുന്നു range() ഒപ്പം len() 1 മുതൽ നീളം വരെയുള്ള സൂചിക മൂല്യങ്ങളിൽ പ്രവർത്തിക്കുന്ന ഒരു ലൂപ്പ് സൃഷ്ടിക്കാൻ xs. ലൂപ്പിനുള്ളിൽ, ഞങ്ങൾ ലിസ്റ്റ് ഘടകങ്ങൾ ഉപയോഗിച്ച് ആക്സസ് ചെയ്യുന്നു xs[index - 1] ഓരോ സൂചികയ്ക്കും ശരിയായ മൂല്യം ലഭിക്കുന്നതിന്.
ഒരു പൈത്തൺ ലൂപ്പിൽ ഇൻഡെക്സ് ആക്സസ് ചെയ്യാൻ enumerate() ഉപയോഗിക്കുന്നു
പൈത്തൺ സ്ക്രിപ്റ്റ് ഉപയോഗിച്ച് എണ്ണുക()
xs = [8, 23, 45]
for index, x in enumerate(xs, start=1):
print("item #{} = {}".format(index, x))
ഒരു പൈത്തൺ ലൂപ്പിൽ മാനുവൽ ഇൻഡക്സ് ട്രാക്കിംഗ്
മാനുവൽ ഇൻഡക്സ് ട്രാക്കിംഗ് ഉള്ള പൈത്തൺ സ്ക്രിപ്റ്റ്
xs = [8, 23, 45]
index = 1
for x in xs:
print("item #{} = {}".format(index, x))
index += 1
ലിസ്റ്റ് കോംപ്രഹെൻഷനും ശ്രേണിയും () ഉള്ള സൂചിക ആക്സസ് ചെയ്യുന്നു
പൈത്തൺ സ്ക്രിപ്റ്റ് ലിസ്റ്റ് കോംപ്രഹെൻഷനും ശ്രേണിയും ഉപയോഗിക്കുന്നു
xs = [8, 23, 45]
for index in range(1, len(xs) + 1):
print("item #{} = {}".format(index, xs[index - 1]))
ഇതര ഇൻഡക്സിംഗ് രീതികൾ മനസ്സിലാക്കുന്നു
ഒരു പൈത്തൺ ലൂപ്പിലെ സൂചിക ആക്സസ് ചെയ്യുന്നതിനുള്ള മറ്റൊരു മാർഗ്ഗം ഉപയോഗിക്കുന്നത് ആണ് zip() എന്നിവയുമായി സംയോജിപ്പിച്ച് പ്രവർത്തനം range() പ്രവർത്തനം. സൂചികയുടെ ട്രാക്ക് സൂക്ഷിക്കുമ്പോൾ ഒരേസമയം ഒന്നിലധികം സീക്വൻസുകൾ ലൂപ്പ് ചെയ്യണമെങ്കിൽ ഈ രീതി പ്രത്യേകിച്ചും ഉപയോഗപ്രദമാണ്. നിങ്ങളുടെ ശ്രേണിയുടെ ദൈർഘ്യത്തിൽ വ്യാപിക്കുന്ന ഒരു റേഞ്ച് ഒബ്ജക്റ്റ് സൃഷ്ടിക്കുന്നതിലൂടെ, നിങ്ങൾക്ക് ഓരോ ഇൻഡക്സും അതിൻ്റെ ക്രമത്തിലുള്ള ഇനവുമായി ജോടിയാക്കാനാകും. ഒരു ലൂപ്പിനുള്ളിൽ ഒന്നിലധികം ലിസ്റ്റുകളുടെ സൂചികകൾ ആക്സസ് ചെയ്യേണ്ടിവരുമ്പോൾ ഈ സമീപനം പ്രയോജനകരമാകും.
സമാനമായ ഫലങ്ങൾ നേടുന്നതിനുള്ള മറ്റൊരു കാര്യക്ഷമമായ രീതിയാണ് ലിസ്റ്റ് കോംപ്രഹെൻഷൻ ഉപയോഗിക്കുന്നത്. ലിസ്റ്റ് കോംപ്രഹെൻഷനുകൾ ലിസ്റ്റുകൾ സൃഷ്ടിക്കാനുള്ള ഒരു സംക്ഷിപ്ത മാർഗം നൽകുന്നു, ഒപ്പം സംയോജിപ്പിക്കുമ്പോൾ enumerate() അഥവാ range(), അവർക്ക് പട്ടികയിൽ നേരിട്ട് സൂചിക മൂല്യങ്ങൾ ഉൾപ്പെടുത്താം. നിലവിലുള്ള ഒരു ശ്രേണിയുടെ മൂല്യങ്ങളെയും സൂചികകളെയും അടിസ്ഥാനമാക്കി ഒരു പുതിയ ലിസ്റ്റ് സൃഷ്ടിക്കേണ്ടിവരുമ്പോൾ ഇത് പ്രത്യേകിച്ചും ഉപയോഗപ്രദമാകും, നിങ്ങളുടെ കോഡിലേക്ക് വഴക്കത്തിൻ്റെ ഒരു അധിക പാളി ചേർക്കുക.
ലൂപ്പ് ഇൻഡക്സിംഗിനെക്കുറിച്ച് പതിവായി ചോദിക്കുന്ന ചോദ്യങ്ങൾ
- എങ്ങിനെയാണ് enumerate() ജോലി?
- ദി enumerate() ഫംഗ്ഷൻ ഒരു ഐറ്ററബിളിലേക്ക് ഒരു കൌണ്ടർ ചേർക്കുകയും അതിനെ ഒരു എണ്ണപ്പെട്ട ഒബ്ജക്റ്റായി തിരികെ നൽകുകയും ചെയ്യുന്നു, അത് പിന്നീട് ലൂപ്പുകളിൽ നേരിട്ട് ഉപയോഗിക്കാം.
- എനിക്ക് മറ്റൊരു മൂല്യത്തിൽ സൂചിക ആരംഭിക്കാനാകുമോ? enumerate()?
- അതെ, ഉപയോഗിച്ച് നിങ്ങൾക്ക് ആരംഭ സൂചിക വ്യക്തമാക്കാം start പരാമീറ്റർ ഇൻ enumerate().
- ഉപയോഗിക്കുന്നതിൻ്റെ പ്രയോജനം എന്താണ് enumerate() മാനുവൽ സൂചിക ട്രാക്കിംഗ് വഴി?
- enumerate() കോഡ് ലളിതമാക്കുകയും മാനുവൽ ഇൻഡക്സ് ട്രാക്കിംഗുമായി ബന്ധപ്പെട്ട പിശകുകളുടെ സാധ്യത കുറയ്ക്കുകയും ചെയ്യുന്നു.
- ഒന്നിലധികം ലിസ്റ്റുകളിലൂടെ ലൂപ്പ് ചെയ്യുമ്പോൾ എനിക്ക് എങ്ങനെ സൂചിക ആക്സസ് ചെയ്യാം?
- ഉപയോഗിച്ച് zip() കൂടെ പ്രവർത്തിക്കുന്നു range() ഒന്നിലധികം ലിസ്റ്റുകളിലൂടെ ഒരേസമയം ലൂപ്പ് ചെയ്യുമ്പോൾ സൂചികകൾ ആക്സസ് ചെയ്യാൻ നിങ്ങളെ സഹായിക്കും.
- സൂചിക മൂല്യങ്ങൾ ഉൾപ്പെടുത്തുന്നതിന് ലിസ്റ്റ് കോംപ്രിഹെൻഷനുകൾ ഉപയോഗിക്കാൻ കഴിയുമോ?
- അതെ, ലിസ്റ്റ് കോംപ്രഹെൻഷനുകൾ സംയോജിപ്പിക്കാം enumerate() അഥവാ range() പുതിയ പട്ടികയിൽ സൂചിക മൂല്യങ്ങൾ ഉൾപ്പെടുത്താൻ.
- ഒരു ലിസ്റ്റിലെ ഇനങ്ങളുടെ സൂചിക ആക്സസ് ചെയ്യുമ്പോൾ എനിക്ക് അവ പരിഷ്കരിക്കാനാകുമോ?
- അതെ, സൂചിക മൂല്യങ്ങൾ ആക്സസ് ചെയ്യുന്നത് ലൂപ്പിനുള്ളിലെ സ്ഥാനത്തെ അടിസ്ഥാനമാക്കി ലിസ്റ്റ് ഇനങ്ങളെ പരിഷ്ക്കരിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു.
- എന്താണ് += ലൂപ്പുകളിൽ ഉപയോഗിക്കുന്ന ഓപ്പറേറ്റർ?
- ദി += ഓപ്പറേറ്റർ ഒരു വേരിയബിളിനെ ഒരു നിർദ്ദിഷ്ട മൂല്യം കൊണ്ട് വർദ്ധിപ്പിക്കുകയും ഫലം ആ വേരിയബിളിലേക്ക് വീണ്ടും നൽകുകയും ചെയ്യുന്നു.
പൈത്തൺ ലൂപ്പുകളിൽ ഇൻഡെക്സ് ആക്സസ് പൊതിയുന്നു
ഫോർ ലൂപ്പിൽ ഇൻഡെക്സ് മൂല്യങ്ങൾ ആക്സസ് ചെയ്യുന്നത് പല പ്രോഗ്രാമിംഗ് ജോലികൾക്കും നിർണായകമാണ്. തുടങ്ങിയ രീതികൾ ഉപയോഗിക്കുന്നു enumerate(), മാനുവൽ സൂചിക ട്രാക്കിംഗ്, ഒപ്പം range() വഴക്കവും കൃത്യതയും അനുവദിക്കുന്നു. നിങ്ങൾ സിംഗിൾ അല്ലെങ്കിൽ ഒന്നിലധികം സീക്വൻസുകളിൽ പ്രവർത്തിക്കുന്നുണ്ടെങ്കിലും, വ്യത്യസ്തമായ സാഹചര്യങ്ങൾ നിങ്ങൾക്ക് ഫലപ്രദമായി കൈകാര്യം ചെയ്യാൻ കഴിയുമെന്ന് ഈ ടെക്നിക്കുകൾ ഉറപ്പാക്കുന്നു. ഈ രീതികൾ മനസ്സിലാക്കുന്നത് നിങ്ങളുടെ കോഡിംഗ് കാര്യക്ഷമത വർദ്ധിപ്പിക്കുകയും കൂടുതൽ ഘടനാപരമായ രീതിയിൽ ഡാറ്റ നിയന്ത്രിക്കാൻ സഹായിക്കുകയും ചെയ്യും, ഇത് മികച്ച പ്രോഗ്രാം രൂപകല്പനയിലേക്കും നിർവ്വഹണത്തിലേക്കും നയിക്കും.