وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

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

0 126
زمان لازم برای مطالعه: 4 دقیقه


معرفی

پایتون یک زبان منعطف است و معمولاً چندین راه برای انجام یک کار ساده و یکسان وجود دارد. انتخاب یک رویکرد می تواند بستگی داشته باشد روی پیچیدگی زمانی یا مکانی، یا به سادگی روی ترجیح شخصی شما

ساختارهای داده پایتون کاملاً کاربردی و شهودی هستند و کارکردن با عملکردهای داخلی آنها آسان است. در این مقاله به بررسی آن خواهیم پرداخت روش معکوس کردن لیست در پایتون. آ لیست پایتون یک ساختار آرایه مانند ناهمگن (می تواند شامل انواع مختلفی باشد) است که ارجاعات به اشیاء را در حافظه ذخیره می کند.

هنگام دستکاری یک لیست، می توانیم a ایجاد کنیم لیست جدید، تغییر یافته، یا لیست اصلی را تغییر دهید درجا. در ادامه مقاله، تفاوت‌های این دو را خواهیم دید.

معکوس کردن یک لیست با استفاده از معکوس() روش

پایتون دارای یک کتابخانه داخلی قدرتمند از روش ها در مورد دستکاری داده ها در ساختارهای داده است. برای اهداف معکوس کردن یک لیست، می توانیم از داخلی استفاده کنیم reverse() روش.

توجه داشته باشید: این reverse() روش لیست را معکوس می کند درجا. معکوس کردن یک لیست درجا به این معنی است که به جای ایجاد یک لیست جدید و معکوس ، لیست اصلی تغییر می کند.

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

my_list = (1, 2, 3, 4)
my_list.reverse()
print(my_list) 

new_list = my_list.reverse()
print(new_list) 

هیچ مقدار برگشتی وجود ندارد – لیست در محل معکوس می شود. با این حال، ما می توانیم copy() آن را قبل از معکوس کردن:

list_1 = (1, 2, 3, 4)
list_2 = list_1.copy()

list_1.reverse()

print('Reversed list: ', list_1)
print('Saved original list: ', list_2)

این منجر به

Reversed list:  (4, 3, 2, 1)
Saved original list:  (1, 2, 3, 4)

معکوس کردن یک لیست با استفاده از علامت گذاری برش

این نماد برش به ما اجازه می دهد تا بخش هایی از مجموعه های مختلف یا اشیاء مبتنی بر مجموعه را در پایتون برش و بازتولید کنیم ، مانند لیست ها، رشته های، تاپل ها و آرایه های NumPy.

وقتی تو تکه یک لیست ، بخشی از آن لیست و هر یک از آن بازگردانده می شود stepعنصر ام شامل:

my_list = (1, 2, 3, 4, 5, 6)


segment_1 = my_list(1:5:1)
segment_2 = my_list(1:5:2)

print(segment_1)
print(segment_2)

این نتیجه در:

(2, 3, 4, 5)
(2, 4)

با حذف start و end آرگومان‌ها، می‌توانید آن را وارد کنید کل مجموعه. و با تنظیم step به یک عدد منفی، شما از طریق مجموعه به صورت معکوس تکرار کنید. به طور طبیعی، اگر اینها را با هم جفت کنید:

original_list = (1, 2, 3, 4, 5, 6)

reversed_list = original_list(::-1)
print('Original list: ', original_list)
print('Reversed list: ', reversed_list)

این نتیجه در:

Original list:  (1, 2, 3, 4, 5, 6)
Reversed list:  (6, 5, 4, 3, 2, 1)

این علامت گذاری برش به هیچ وجه روی لیست اصلی تأثیر نمی گذارد، بنابراین original_list حتی بعد از عمل هم همینطور باقی می ماند.

پیشنهاد می‌کنیم بخوانید:  جاوا اسکریپت: حداقل و حداکثر عنصر آرایه را دریافت کنید هنگام کار با جاوا اسکریپت، ما اغلب با موقعیت هایی مواجه می شویم که ما را ملزم می کند حداقل و حداکثر عناصر یک آرایه را به دست آوریم - چه برای تعیین مرزهای یک نوار لغزنده یا نمایش آمار به کاربر. در این مقاله نگاهی خواهیم داشت به اینکه چگونه می توان حداقل ...

معکوس کردن یک لیست با استفاده از تکه() روش

این slice() روش همان پارامترها را می پذیرد – start، end و step، و تقریباً همان عملیاتی را انجام می دهد. اگرچه، به جای حذف start و end آرگومان ها، می توانید وارد شوید None.

نوع برگشت آن a است Slice شی، که سپس می توان از آن استفاده کرد یک مجموعه را با توجه به محتوای آن برش دهید. اسمش نیست روی مجموعه ای که در حال برش هستید – در حال عبور از آن هستید Slice شیء بعد از ایجاد ، به شما امکان می دهد یک شیء قابل استفاده مجدد و قابل تماس برای بسیاری از مجموعه های مختلف ایجاد کنید.

در داخل به نماد برش منتقل می شود ، بنابراین نتیجه نهایی همان است:

original_list = (1, 2, 3, 4, 5, 6)

slice_obj = slice(None, None, -1)

print('slice_obj type:', type(slice_obj))
print('Reversed list:', original_list(slice_obj))

این نتیجه در:

slice_obj type: <class 'slice'>
Reversed list: (6, 5, 4, 3, 2, 1)

معکوس کردن یک لیست با استفاده از a برای حلقه

بسته به روی خواه بخواهیم لیست اصلی را دست نخورده نگه داریم یا نه ، می توانیم pop() عناصر موجود در لیست اصلی و اضافه کردن آنها به یک مورد جدید ، یا ما فقط می توانیم آنها را به ترتیب معکوس اضافه کنیم.

pop() را حذف می کند آخر عنصر از یک مجموعه و آن را برمی گرداند. ما می توانیم ترکیب کنیم append() روش با این کار به طور مستقیم عنصر حذف شده را به یک لیست جدید اضافه کنید ، و به طور موثری منجر به یک لیست معکوس شود:

original_list = (1, 2, 3, 4) 
reversed_list = ()

for i in range(len(original_list)):
    reversed_list.append(original_list.pop())

print(reversed_list) 

متناوبا، می‌توانیم از طریق فهرست تکرار کنیم به عقب، تا -1فهرست هفتم (غیر فراگیر) و هر عنصری را که در آن لیست می بینیم اضافه کنید. این range() متد 3 آرگومان را می پذیرد – start، end و step، که می تواند دوباره به همان روشی که قبل از آن مورد استفاده قرار گیرد:

original_list = (1, 2, 3, 4)
reversed_list = ()

for i in range(len(original_list)-1, -1, -1):
    reversed_list.append(original_list(i))

print(reversed_list) 

معکوس کردن یک لیست با استفاده از معکوس () روش

از آنجا که با یک مرحله منفی تکرار می شود و سپس دسترسی به هر عنصر در لیست اصلی کمی کلامی است ، reversed() روش اضافه شد ، که باعث می شود به صورت دستی منطق وارونه را به صورت دستی آسان کنید ، در صورتی که می خواهید پیچ ​​و تاب خود را اضافه کنید روی آی تی.

پیشنهاد می‌کنیم بخوانید:  روش استفاده از انواع داده در پایتون – با مثال کد توضیح داده شده است

این reversed() روش یک تکرار کننده را برمی گرداند و به ترتیب معکوس بر روی مجموعه تکرار می شود – و ما می توانیم به راحتی این عناصر را به یک لیست جدید اضافه کنیم:

original_list = (1, 2, 3, 4)
new_list = ()

for i in reversed(original_list):
    new_list.append(i)
    
print(new_list) 
print(original_list) 

نتیجه

بسته به روی آیا به یک لیست معکوس جدید نیاز دارید، یک لیست معکوس شده در محل، و همچنین اینکه آیا می خواهید منطق برای شما مورد توجه قرار گیرد، یا اگر می خواهید انعطاف پذیری اضافه کردن عملیات یا پیچش های اضافی در طول معکوس داشته باشید. – چندین راه برای معکوس کردن یک لیست در پایتون وجود دارد.

در این آموزش، این سناریوها را بررسی کرده ایم و تفاوت بین هر کدام را برجسته می کنیم.

(برچسب‌ها به ترجمه)# python



منتشر شده در 1403-01-09 07:46:03

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید