লিস্টকে n পজিশন ডানে রোটেট করতে (রাইট রোটেশন), লাস্ট এলিমেন্টকে ফ্রন্টে আনা হয় n বার।
উদাহরণ
my_list = [31, 42, 13, 34, 85, 0, 99, 1, 3]
n = 3
print("মূল লিস্ট:", my_list)
print(f"{n} পজিশন রাইট রোটেট করা হচ্ছে...")
for _ in range(n):
last = my_list[-1]
# সব এলিমেন্ট এক ধাপ ডানে শিফট
for i in range(len(my_list)-1, 0, -1):
my_list[i] = my_list[i-1]
my_list[0] = last
print("রাইট রোটেটেড লিস্ট:", my_list)
আউটপুট
মূল লিস্ট: [31, 42, 13, 34, 85, 0, 99, 1, 3] ৩ পজিশন রাইট রোটেট করা হচ্ছে... রাইট রোটেটেড লিস্ট: [99, 1, 3, 31, 42, 13, 34, 85, 0]
ব্যাখ্যা
প্রতিটি রোটেশনে লাস্ট এলিমেন্ট সংরক্ষণ করা হয়।
রিভার্স লুপ দিয়ে এলিমেন্টগুলো ডানে শিফট।
ফাস্ট ইনডেক্সে সংরক্ষিত লাস্ট এলিমেন্ট বসানো হয়।
দক্ষতর:
my_list[-n:] + my_list[:-n](স্লাইসিং) বাcollections.deque+rotate()।