বিবেচনা:
>>> lst = iter([1,2,3])
>>> next(lst)
1
>>> next(lst)
2
সুতরাং, পুনরাবৃত্তিকে অগ্রসর করা, যেমনটি প্রত্যাশা করা হয়েছিল, একই জিনিসটিকে রূপান্তরিত করে পরিচালনা করা হবে।
এটি হ'ল, আমি আশা করব:
a = iter(list(range(10)))
for i in a:
print(i)
next(a)
প্রতি দ্বিতীয় উপাদানটি এড়াতে: কলটি next
একবারে পুনরুত্থককে অগ্রসর করা উচিত, তারপরে লুপের দ্বারা প্রেরিত কলটি এটি দ্বিতীয়বারের সাথে অগ্রসর হওয়া উচিত - এবং এই দ্বিতীয় কলটির ফলাফল নির্ধারিত হবে i
।
এটা হয় না। লুপ তালিকায় থাকা সমস্ত আইটেম মুদ্রণ করে, কোনও কিছু বাদ না দিয়ে।
আমার প্রথম চিন্তা ছিল যে এটি ঘটতে পারে কারণ লুপটি iter
যা পাস তা কল করে এবং এটি একটি স্বতন্ত্র পুনরাবৃত্তি দিতে পারে - এটি আমাদের ক্ষেত্রে যেমন হয় না iter(a) is a
।
সুতরাং, কেন next
এই ক্ষেত্রে পুনরুক্তিকারীর অগ্রসর হতে দেখা যায় না?