এটি ওএপিকে যা জিজ্ঞাসা করা উচিত ছিল তার জবাব দেয় , অর্থাত্ ক্রমাগত উপাদানগুলির তুলনায় একটি তালিকা ( সর্বোপরি সাইলেন্টগোস্ট উত্তর), তবে যে কোনও গ্রুপের ( এন-গ্রাম ) জন্য সাধারণীকরণ করা হয়েছে : 2, 3, ... n:
zip(*(l[start:] for start in range(0, n)))
উদাহরণ:
l = range(0, 4) # [0, 1, 2, 3]
list(zip(*(l[start:] for start in range(0, 2)))) # == [(0, 1), (1, 2), (2, 3)]
list(zip(*(l[start:] for start in range(0, 3)))) # == [(0, 1, 2), (1, 2, 3)]
list(zip(*(l[start:] for start in range(0, 4)))) # == [(0, 1, 2, 3)]
list(zip(*(l[start:] for start in range(0, 5)))) # == []
ব্যাখ্যা:
l[start:] সূচি থেকে শুরু করে এএ তালিকা / জেনারেটর উত্পন্ন করে start
*listবা *generator: সমস্ত উপাদানগুলি এনকোলেজিং ফাংশনে পাস করে zipযেন এটি লেখা হয়েছিলzip(elem1, elem2, ...)
বিঃদ্রঃ:
আফাইক, এই কোডটি যতটা হতে পারে তত অলস। পরীক্ষিত না.