কম্পিউটার টিউটোরিয়াল

পাইথনে লিস্ট را이트 রোটেট করা (n পজিশন)


সমস্যা

একটি লিস্টকে ডান দিকে n পজিশন ঘুরানো। উদাহরণ: [2,4,5,12,90], n=3 → [12,90,2,4,5] (মূল আউটপুটে ভুল ছিল, সঠিকটি এখানে দেওয়া হলো)।

পদ্ধতি ১: লুপ ব্যবহার


def right_rotation(lst, n):
    n = n % len(lst)  # n লিস্টের দৈর্ঘ্যের চেয়ে বড় হলে
    output = []
    # শেষ n টি এলিমেন্ট
    for i in range(len(lst) - n, len(lst)):
        output.append(lst[i])
    # বাকি এলিমেন্ট
    for i in range(0, len(lst) - n):
        output.append(lst[i])
    return output

# টেস্ট
A = [11, 22, 33, 44, 55, 66]
print("After rotation:", right_rotation(A, 3))
# আউটপুট: [44, 55, 66, 11, 22, 33]

পদ্ধতি ২: স্লাইসিং (সবচেয়ে পাইথনিক)


def right_rotate_slice(lst, n):
    n = n % len(lst)
    return lst[-n:] + lst[:-n]

A = [11, 22, 33, 44, 55, 66]
print("After Rotation:", right_rotate_slice(A, 3))
# আউটপুট: [44, 55, 66, 11, 22, 33]

পদ্ধতি ৩: নেগেটিভ ইনডেক্সিং (পদ্ধতি ২-র সংক্ষিপ্ত রূপ)


A = [11, 22, 33, 44, 55, 66]
n = 3
rotated = A[-n:] + A[:-n]
print("After Rotation:", rotated)
# আউটপুট: [44, 55, 66, 11, 22, 33]

তুলনা

পদ্ধতিসময় জটিলতাস্পেস জটিলতাপাঠযোগ্যতা
লুপO(n)O(n)মাঝারি
স্লাইসিংO(n)O(n)উৎকৃষ্ট (Pythonic)

বাম দিকে রোটেট (Left Rotate)


def left_rotate(lst, n):
    n = n % len(lst)
    return lst[n:] + lst[:n]
  1. লিস্টের কিউমুলেটিভ সাম বের করার পাইথন প্রোগ্রাম

  2. পাইথনে একটি লিস্টের সব সাবলিস্ট প্রিন্ট করার প্রোগ্রাম

  3. পাইথনে ৩D লিস্ট তৈরি করার প্রোগ্রাম

  4. পাইথনে দুটি ডিকশনারি মার্জ করার প্রোগ্রাম