معکوس کردن لیست‌ها در پایتون
ﺯﻣﺎﻥ ﻣﻄﺎﻟﻌﻪ: 3 دقیقه

معکوس کردن لیست‌ها در پایتون

معکوس کردن یک لیست در زبان‌های برنامه‌نویسی مختلف به شکل‌های متفاوتی اتفاق می‌افتد. اغلب برنامه‌نویسان زبان‌های کمی سطح پایین‌تر از جاوا، پایتون و... این کار را به صورت دستی انجام داده و در این حالت حجم زیادی از کدها را می‌نویسند. اما در زبان‌های برنامه‌نویسی سطح بالا میانبرهایی برای معکوس کردن لیست‌ها در نظر گرفته شده که ما در این مطلب قصد داریم در ارتباط با ۳ روش مختلف برای انجام این کار توضیحاتی را ارائه دهیم.

این سه روش عبارت است از موارد زیر:

  • استفاده از تابع داخلی reversed()
  • استفاده از تابع داخلی reverse()
  • استفاده از روش slicing

روش اول: استفاده از تابع داخلی reversed()

این تابع یک تابع داخلی به حساب آمده و شما نیازی به اضافه کردن چیزی برای استفاده از آن ندارید. در این روش هیچ لیست جدیدی اضافه نشده و یا حتی کپی از لیست اصلی داخل یک متغیر فرعی قرار نمی‌گیرد. برعکس این تابع در یک فرایند iterate شدن با استفاده از یک حلقه for همه چیز را برعکس کرده خروجی را نیز براساس لیست برعکس شده به ما ارائه می‌کند.

# Reversing a list using reversed()

def reverse_list(mylist):
        return [ele for ele in reversed(mylist)]

mycountrylist = ['US','India','Germany','South Africa']
mynumberlist = [1,2,3,4,5,6]

print(reverse_list(mycountrylist))
print(reverse_list(mynumberlist))

خروجی این تابع در نهایت قطعه زیر می‌شود:

['South Africa', 'Germany', 'India', 'US']
[6, 5, 4, 3, 2, 1]

البته اگر به یک نسخه از این لیست معکوس شده نیاز دارید می‌توانید از قطعه کد زیر استفاده کنید.

mynumberlist = [1,2,3,4,5,6]
newlist = list((reversed(mynumberlist)))

print(newlist)

# Output
# [6, 5, 4, 3, 2, 1]

روش دوم: استفاده از تابع داخلی reverse()

reverse() یک تابع داخلی در پایتون است. در این متد شما یک لیست جدید یا در واقع یک کپی از لیست قبلی را نخواهید داشت بلکه همان لیست را تغییر می‌دهد. این حالت نیز به صورت در جا یا in-place اتفاق می‌افتد. به صورت ساده‌تر ما لیست معکوس شده را در همان لیست اصلی قرار می‌دهیم.

متد reverse() هیچ چیزی را مستقلا برگشت نمی‌دهد، شما می‌توانید برای برگشت پذیری آن، مقدار این تابع را در یک متغیر یا به صورت یک تابع دیگر دربیاورید. برای مثال در قطعه کد زیر ما از این تابع در یک تابع دیگر استفاده کرده‌ایم.

# Reversing a list using reverse()

def reverse_list(mylist):
        mylist.reverse()
        return mylist

mycountrylist = ['US','India','Germany','South Africa']
mynumberlist = [1,2,3,4,5,6]

print(reverse_list(mycountrylist))
print(reverse_list(mynumberlist))

خروجی نهایی نیز به شکل زیر خواهد بود:

['South Africa', 'Germany', 'India', 'US']
[6, 5, 4, 3, 2, 1]

روش سوم: استفاده از روش slicing

نشانه‌گذاری به روش Slicing یکی از حالت‌هایی است که برای ایندکس‌دهی و اعمال تغییرات روی ساختارهای داده‌ایی مانند لیست‌ها، رشته‌ها، آرایه‌ها و... استفاده می‌شود.

در واقع استفاده از این روش برای معکوس کردن لیست‌ها در پایتون، از آسان‌ترین حالت‌های ممکن است. البته تنها مشکلی که این حالت دارد این است که یک نسخه جدید از لیست ایجاد کرده و این به خودی خود حجم برنامه را افزایش داده و میزان حافظه بیشتری را اشغال می‌کند.

# Reversing a list using slicing technique

def reverse_list(mylist):
        newlist= mylist[::-1]
        return newlist


mycountrylist = ['US','India','Germany','South Africa']
mynumberlist = [1,2,3,4,5,6]

print(reverse_list(mycountrylist))
print(reverse_list(mynumberlist))

خروجی این قطعه کد را می‌توانید در زیر مشاهده کنید:

['South Africa', 'Germany', 'India', 'US']
[6, 5, 4, 3, 2, 1]

در پایان

کار با لیست‌ها در پایتون بسیار لذت‌بخش و داشتن دانش در رابطه با آن بسیار ضروری‌ست. ما در این مطلب سعی کردیم تا شما را با سه روش مختلف برای معکوس کردن داده‌های یک لیست در پایتون آشنا کنیم.

چه امتیازی برای این مقاله میدهید؟

خیلی بد
بد
متوسط
خوب
عالی
5 از 3 رای

9 ماه پیش
پایتون
python
/@arastoo
ارسطو عباسی
برنامه‌نویس و توسعه‌دهنده نرم‌افزار - نویسنده و کپی‌رایتر - #پایتون - #جنگو - #لینوکس

برنامه‌نویس تمام وقت پایتون و مدیر بخش تولید محتوا وبسایت راکت - وبلاگ شخصی: https://arastoo.dev

دیدگاه و پرسش

برای ارسال دیدگاه لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

ارسطو عباسی

برنامه‌نویس و توسعه‌دهنده نرم‌افزار - نویسنده و کپی‌رایتر - #پایتون - #جنگو - #لینوکس