6 رویکرد مختلف برای نمایش لیست ها در پایتون

6 رویکرد مختلف برای نمایش لیست ها در پایتون

گره منبع: 3091325

معرفی

در پایتون، چاپ لیست ها فقط نشان دادن مقادیر نیست. این راهی برای برنامه نویسان است که کد خود را بهتر درک کنند و مطمئن شوند که داده ها درست به نظر می رسند. بیایید راه‌های مختلف چاپ فهرست‌ها را با مثال‌ها و نکات کاربردی برای شفاف‌تر کردن همه چیز بررسی کنیم. بیایید به دنیای لیست های پایتون شیرجه بزنیم.

در ما ثبت نام کنید دوره رایگان از پایتون

جدول محتوا

چاپ لیست در پایتون

چاپ لیست ها در پایتون طیف وسیعی از روش ها را باز می کند، و در این مقاله، چندین روش موثر را بررسی خواهیم کرد:

  • استفاده از حلقه for
  • یک لیست را برای نمایش به رشته تبدیل کنید
  • استفاده از پارامتر sep در print()
  • با استفاده از تابع map()
  • با استفاده از نمایه سازی و برش
  • استفاده از درک لیست

نمایش لیست در پایتون با استفاده از حلقه For

لیست را از 0 تا طول آن تکرار کنید و هر عنصر را به صورت جداگانه با استفاده از حلقه for چاپ کنید. این روش مرسوم برای انجام آن است.

در زیر نمونه ای از نمایش لیست در پایتون با استفاده از حلقه for آورده شده است:

# Creating a list of fruits

fruits = ["apple", "banana", "orange", "grape", "kiwi"]

# Displaying each fruit using a for loop

print("List of Fruits:")

for fruit in fruits:

    print(fruit)

در این مثال، ما لیستی از میوه ها داریم و حلقه for از طریق هر آیتم در لیست تکرار می شود و آنها را یکی یکی نمایش می دهد.

خروجی:

نمایش لیست ها

پیچیدگی زمانی (O(n)):

پیچیدگی زمانی O(n) است زیرا در یک حلقه for، هر عنصر در لیست یک بار بازدید می شود و زمان صرف شده برای اجرای حلقه مستقیماً با تعداد عناصر موجود در لیست ورودی متناسب است.

پیچیدگی فضایی (O(1)):

پیچیدگی فضا O(1) است زیرا حلقه از مقدار ثابتی از حافظه صرف نظر از اندازه ورودی استفاده می کند. فقط از یک متغیر (عنصر) برای نشان دادن هر آیتم در لیست استفاده می کند و ساختارهای داده اضافی ایجاد نمی کند که با ورودی رشد می کنند.

یک لیست را با تبدیل آن به رشته نمایش دهید

وقتی با فهرستی از رشته هاییک رویکرد ساده استفاده از تابع join() برای الحاق آسان است. با این حال، زمانی که لیست حاوی اعداد صحیح است، یک فرآیند دو مرحله ای مورد نیاز است: ابتدا آنها را به رشته تبدیل کنید و سپس از تابع join() برای ایجاد یک رشته یکپارچه برای نمایش استفاده کنید.

در اینجا یک مثال:

# Example list of fruits

fruits = ["apple", "banana", "orange", "grape", "kiwi"]

# Convert the list to a string and display it

result_string = ', '.join(fruits)

print("List of Fruits: " + result_string)

در این مثال، متد join عناصر لیست را در یک واحد به هم متصل می کند رشته، با کاما و فاصله از هم جدا می شوند. سپس نتیجه به عنوان یک رشته فرمت شده نمایش داده می شود.

خروجی:

نمایش لیست ها

پیچیدگی زمانی (O(n)):

پیچیدگی زمانی O(n) است زیرا در یک حلقه for، هر عنصر در لیست یک بار پردازش می شود و زمان اجرا به صورت خطی با تعداد عناصر موجود در لیست ورودی مقیاس می شود. با افزایش ورودی، زمان اجرا الگوریتم به طور متناسب افزایش می یابد.

پیچیدگی فضایی (O(1)):

پیچیدگی فضا O(1) است زیرا الگوریتم بدون توجه به اندازه ورودی از مقدار ثابتی از حافظه استفاده می کند. حلقه فقط به یک متغیر (عنصر) منفرد برای نشان دادن هر آیتم در لیست نیاز دارد و ساختار داده یا حافظه اضافی که به اندازه لیست ورودی بستگی دارد ایجاد نمی کند.

نمایش با پارامتر sep در Print()

پارامتر sep در تابع print() به شما این امکان را می دهد که یک جداکننده بین مواردی که چاپ می کنید مشخص کنید. 

استفاده از علامت ستاره (*) به شما امکان می دهد عناصر لیست را در یک خط با فاصله ارائه کنید. برای نمایش هر عنصر در یک خط جدید یا جدا شده با کاما، به ترتیب از sep=”n” یا sep=” استفاده کنید. 

در اینجا یک مثال با استفاده از لیستی از میوه ها آورده شده است:

# Example list of fruits

fruits = ["apple", "banana", "orange", "grape", "kiwi"]

# Displaying the list with a custom separator using the sep parameter

print("List of Fruits:", *fruits, sep=", ")

در این مثال، sep=”، مشخص می کند که یک کاما و یک فاصله باید به عنوان جداکننده بین آیتم های لیست استفاده شود.

خروجی:

پیچیدگی زمانی (O(n)):

پیچیدگی زمانی O(n) است زیرا با یک حلقه for، هر عنصر در لیست به صورت جداگانه پردازش می شود. با افزایش تعداد عناصر (n)، زمان اجرا به صورت خطی افزایش می یابد که منعکس کننده رابطه مستقیم بین اندازه ورودی و زمان محاسبه است.

پیچیدگی فضایی (O(1)):

پیچیدگی فضا O(1) است زیرا الگوریتم از مقدار ثابتی از حافظه، مستقل از اندازه ورودی استفاده می‌کند. حلقه از مجموعه ثابتی از متغیرها (مانند "عنصر") استفاده می کند و از ایجاد ساختارهای داده اضافی یا تخصیص پویا حافظه در رابطه با اندازه ورودی جلوگیری می کند.

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

از تابع map() برای اطمینان از اینکه هر آیتم در لیست یک رشته است استفاده کنید، به خصوص زمانی که لیست شامل عناصر غیر رشته ای باشد. پس از این، این عناصر تبدیل شده را با استفاده از تابع join برای نمایش یکپارچه ادغام کنید.

در اینجا نمونه ای از نمایش لیست میوه ها در پایتون آمده است:

# Example list of fruits

fruits = ["apple", "banana", "orange", "grape", "kiwi"]

# Displaying the list of fruits

print("List of Fruits:", fruits)

خروجی:

تابع print() به طور خودکار لیست را برای نمایش فرمت می کند. اگر می‌خواهید خروجی را بیشتر سفارشی کنید، می‌توانید در لیست تکرار کنید و هر مورد را به‌صورت جداگانه چاپ کنید یا از روش join استفاده کنید، همانطور که در مثال‌های قبلی نشان داده شده است.

نمایش یک لیست در پایتون با استفاده از Indexing و Slicing

برای دسترسی به عناصر خاص یا زیرمجموعه‌ای از فهرست، می‌توانید فهرستی را در پایتون با استفاده از نمایه‌سازی و برش نمایش دهید. 

در اینجا یک مثال:

# Example list of fruits

fruits = ["apple", "banana", "orange", "grape", "kiwi"]

# Displaying the entire list

print("Complete List of Fruits:", fruits)

# Displaying specific elements using indexing

print("First Fruit:", fruits[0])

print("Third Fruit:", fruits[2])

# Displaying a subset using slicing

print("Subset of Fruits:", fruits[1:4])

خروجی:

در این مثال، نمایه سازی برای دسترسی به عناصر منفرد (به عنوان مثال، میوه ها[0] برای اولین عنصر)، و برش برای نمایش زیرمجموعه ای از لیست استفاده می شود (به عنوان مثال، میوه ها[1:4] برای عناصر در نمایه 1، 2 و 3).

پیچیدگی زمانی (O(n)):

پیچیدگی زمانی O(n) است زیرا تکرار در لیست با استفاده از نمایه سازی یا برش شامل بازدید از هر عنصر یک بار است. با افزایش اندازه لیست (n)، زمان صرف شده برای دسترسی یا برش لیست به صورت خطی افزایش می یابد.

پیچیدگی فضایی (O(1)):

پیچیدگی فضای O(1) برای عملیات نمایه سازی و برش است زیرا آنها از مقدار ثابتی از حافظه اضافی صرف نظر از اندازه لیست استفاده می کنند. حافظه مورد نیاز برای متغیرهای index/slice ثابت می ماند و با اندازه ورودی تغییر نمی کند.

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

درک لیست یک ویژگی مختصر در پایتون برای ایجاد لیست با اعمال یک عبارت برای هر آیتم در یک تکرار موجود است. این یک نحو فشرده ارائه می دهد که مراحل ایجاد یک لیست جدید و اعمال یک تبدیل به عناصر آن را ترکیب می کند.

در اینجا نمونه ای از نمایش یک لیست اصلاح شده از میوه ها با استفاده از درک لیست آورده شده است:

# Example list of fruits

fruits = ["apple", "banana", "orange", "grape", "kiwi"]

# Using list comprehension to create a new list with capitalized fruits

capitalized_fruits = [fruit.capitalize() for fruit in fruits]

# Displaying the new list

print("Capitalized Fruits:", capitalized_fruits)

خروجی:

نمایش لیست ها

در این مثال، درک لیست برای ایجاد یک لیست جدید (capitalized_fruits) استفاده می‌شود. نتیجه، فهرستی از میوه‌ها با حروف بزرگ است.

پیچیدگی زمانی (O(n)):

پیچیدگی زمانی برای این مثال O(n) است زیرا از طریق هر عنصر در لیست اصلی میوه ها تکرار می شود. زمان اجرا با تعداد میوه ها به صورت خطی مقیاس می شود و آن را با اندازه لیست ورودی متناسب می کند.

پیچیدگی فضا (O(n)):

پیچیدگی فضا O(n) است زیرا درک لیست یک لیست جدید (capitalized_fruits) ایجاد می کند که با اندازه لیست ورودی (fruits) رشد می کند. هر عنصر در لیست اصلی مربوط به یک عنصر در لیست جدید است که به یک رابطه خطی بین اندازه ورودی و حافظه استفاده شده کمک می کند.

نتیجه

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

پرسش و پاسخهای متداول

Q1. چرا درک لیست برای نمایش لیست ها توصیه می شود؟

A. درک فهرست به دلیل نحو مختصر و کارایی آن توصیه می شود. این امکان ایجاد لیست های اصلاح شده با یک خط کد را فراهم می کند و کد را خواناتر می کند.

Q2. چگونه نمایه سازی بر پیچیدگی زمانی هنگام نمایش یک لیست تأثیر می گذارد؟

A. نمایه سازی دارای پیچیدگی زمانی O(1) برای دسترسی به عناصر منفرد است که صرف نظر از اندازه لیست، زمان ثابتی را ارائه می دهد. با این حال، تکرار در کل لیست با استفاده از نمایه سازی منجر به پیچیدگی زمانی O(n) می شود.

Q3. چه زمانی باید از پارامتر sep در print() استفاده شود؟

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

Q4. آیا روش پیشنهادی برای نمایش لیست رشته ها وجود دارد؟

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

Q5: چگونه درک لیست بر پیچیدگی فضا تأثیر می گذارد؟

A5: درک لیست دارای پیچیدگی فضایی O(n) است که n اندازه لیست ورودی است. یک لیست جدید با همان تعداد عناصر لیست اصلی ایجاد می کند. بنابراین، کمک به یک رابطه خطی بین اندازه ورودی و استفاده از حافظه.

تمبر زمان:

بیشتر از تجزیه و تحلیل Vidhya