লুপের জন্য একটি ব্যবহার করে, আমি এই ক্ষেত্রে 1 থেকে 5 পর্যন্ত লুপ সূচকটি কীভাবে অ্যাক্সেস করব?
enumerate
আপনি পুনরাবৃত্তি হিসাবে উপাদান সঙ্গে সূচক পেতে ব্যবহার করুন :
for index, item in enumerate(items):
print(index, item)
এবং লক্ষ করুন যে পাইথনের সূচকগুলি শূন্য থেকে শুরু হয়, সুতরাং আপনি উপরের সাথে 0 থেকে 4 পাবেন। আপনি যদি 1 থেকে 5 নম্বর গণনা করতে চান তবে এটি করুন:
for count, item in enumerate(items, start=1):
print(count, item)
ইউনিডিওমেটিক নিয়ন্ত্রণ প্রবাহ
আপনি যা জিজ্ঞাসা করছেন তা হ'ল নীচের পাইথোনিক সমতুল্য, যা নিম্ন-স্তরের ভাষার বেশিরভাগ প্রোগ্রামার ব্যবহার করবে অ্যালগোরিদম:
index = 0 # Python's indexing starts at zero
for item in items: # Python's for loops are a "for each" loop
print(index, item)
index += 1
বা যে ভাষাগুলিতে প্রতিটি লুপ নেই:
index = 0
while index < len(items):
print(index, items[index])
index += 1
বা কখনও কখনও পাইথনে আরও সাধারণভাবে (তবে একচেটিয়াভাবে) পাওয়া যায়:
for index in range(len(items)):
print(index, items[index])
গণনা কার্যটি ব্যবহার করুন Use
পাইথনের enumerate
ফাংশন সূচকগুলির জন্য অ্যাকাউন্টিং গোপন করে এবং পুনরাবৃত্তিকে অন্য পুনরাবৃত্ত (একটি enumerate
বস্তু) -এর মধ্যে সংযুক্ত করে যা সূচকটির দ্বি-আইটেম টুপল দেয় এবং যে আইটেমটি মূল পুনরাবৃত্তিযোগ্য তা সরবরাহ করে। এটি দেখতে এরকম দেখাচ্ছে:
for index, item in enumerate(items, start=0): # default is zero
print(index, item)
এই কোড নমুনা মোটামুটি ভাল হয় ক্যানোনিকাল কোডটি Python- র কথ্য হয় এবং কোড মধ্যে পার্থক্য নয় উদাহরণ। আইডিয়োমেটিক কোডটি পরিশীলিত (তবে জটিল নয়) পাইথন, এটি যেভাবে ব্যবহারের উদ্দেশ্যে হয়েছিল সেভাবে লেখা। আইডোমেটিক কোডটি ভাষার ডিজাইনার দ্বারা প্রত্যাশিত হয়, যার অর্থ সাধারণত এই কোডটি কেবল আরও বেশি পঠনযোগ্য নয়, তবে আরও কার্যকর efficient
একটি গণনা করা
আপনার যেতে যেতে সূচকের প্রয়োজন না হলেও আপনার পুনরাবৃত্তির একটি গণনা প্রয়োজন (কখনও কখনও কাম্য) আপনি শুরু করতে পারেন 1
এবং চূড়ান্ত নম্বরটি আপনার গণনা হবে।
for count, item in enumerate(items, start=1): # default is zero
print(item)
print('there were {0} items printed'.format(count))
যখন আপনি বলেছিলেন যে আপনি 1 থেকে 5 পর্যন্ত চেয়েছিলেন তখন গণনাটি আপনি যা চেয়েছিলেন তার চেয়ে বেশি (সূচির বিপরীতে) চেয়েছিলেন বলে মনে হয়।
এটি ভেঙে দেওয়া - ধাপে ধাপে ব্যাখ্যা
এই উদাহরণগুলি ভাঙতে, আমাদের আইটেমগুলির একটি তালিকা রয়েছে যা আমরা সূচক দিয়ে পুনরাবৃত্তি করতে চাই:
items = ['a', 'b', 'c', 'd', 'e']
এখন আমরা এই পুনরাবৃত্তিকে গণনার জন্য পাস করবো, একটি এনুমারেট অবজেক্ট তৈরি করে:
enumerate_object = enumerate(items) # the enumerate object
আমরা এই পুনরাবৃত্তির প্রথম আইটেমটি টানতে পারি যা আমরা next
ফাংশনটির সাথে একটি লুপে পেয়ে যাব :
iteration = next(enumerate_object) # first iteration from enumerate
print(iteration)
এবং আমরা দেখতে পাই যে আমরা 0
প্রথম সূচক এবং 'a'
প্রথম আইটেমের একটি টুপল পাই :
(0, 'a')
এই দ্বি-দ্বিখণ্ড থেকে উপাদানগুলি বের করতে আমরা " সিক্যুয়েন্স আনপ্যাকিং " হিসাবে চিহ্নিত হিসাবে ব্যবহার করতে পারি :
index, item = iteration
# 0, 'a' = (0, 'a') # essentially this.
এবং যখন আমরা পরিদর্শন index
, আমরা এটা প্রথম সূচক, 0 উল্লেখ করে, এবং এটি item
, প্রথম আইটেম বোঝায় 'a'
।
>>> print(index)
0
>>> print(item)
a
উপসংহার
- পাইথন সূচকগুলি শূন্য থেকে শুরু হয়
- এগুলি সূচকগুলি পুনরাবৃত্ত হওয়ার সাথে সাথে এটির পুনরাবৃত্তি করার জন্য, গণনা ফাংশনটি ব্যবহার করুন
- অভিব্যক্তিক উপায়ে গণনা ব্যবহার করে (টিপল আনপ্যাকিং সহ) এমন কোড তৈরি করে যা আরও পঠনযোগ্য এবং বজায় রাখা যায়:
সুতরাং এটি করুন:
for index, item in enumerate(items, start=0): # Python indexes start at zero
print(index, item)