در پایتون، لیست‌ها سنگ بنای سازماندهی و دستکاری داده‌ها هستند – بنابراین فکر می‌کنم آنها مستحق یک کاوش کامل هستند.

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

می توانید تمام کد منبع را از اینجا دریافت کنید.

فهرست مطالب

  • لیست در پایتون چیست؟
  • روش ایجاد لیست در پایتون
  • روش دسترسی به عناصر موجود در لیست در پایتون
  • لیست عملیات و روش ها
  • مفاهیم لیست پیشرفته
  • نتیجه

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

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

اکنون لیست های پایتون را به عنوان کوله پشتی دیجیتال خود در نظر بگیرید. لیست پایتون مانند یک لیست همه کاره است container، اما به جای محفظه ها، اطلاعات مختلفی به نام “عناصر” را در خود نگه می دارد. این عناصر می توانند هر چیزی که شما می خواهید باشد: اعداد، کلمات، حتی لیست های دیگر! درست مانند کوله پشتی خود، می توانید این عناصر را در صورت نیاز مرتب کنید، اضافه کنید، حذف کنید یا به روز کنید.

برای مثال، فرض کنید قصد سفر به خواربار فروشی را دارید. شما می توانید یک لیست پایتون به نام ایجاد کنید grocery_list برای پیگیری تمام اقلامی که باید بخرید. هر مورد، مانند “سیب”، “موز” یا “شیر” مانند یک عنصر در لیست شماست.

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

grocery_list = ["apples", "bananas", "milk"]

لیست پایتون مجموعه ای پویا، قابل تغییر و مرتب از عناصر است که در داخل پرانتز قرار دارند [].

این عناصر که آیتم‌ها یا مقادیر نامیده می‌شوند، می‌توانند از انواع داده‌های مختلفی باشند – اعداد، رشته‌ها، بولی ها و حتی لیست‌های دیگر (ایجاد ساختارهای تودرتو).

با استفاده از این لیست، می‌توانید به راحتی آنچه را که باید بخرید بررسی کنید، اقلام جدیدی را که آنها را به خاطر می‌آورید اضافه کنید، یا به محض دریافت یا تغییر نظر، موارد را حذف کنید.

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

روش ایجاد لیست در پایتون

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

لیست تک خطی

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

fruits = ["apple", "banana", "cherry"]

لیست چند خطی برای خوانایی

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

numbers = [
    1,
    2,
    3,
    4,
    5,
]

لیست انواع داده های مختلط

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

mixed_list = ["hello", 3.14, True]

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

روش دسترسی به عناصر موجود در لیست در پایتون

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

در لیست های پایتون، هر آیتم مانند یک تکه آب نبات در یک شیشه و برچسب است روی کوزه شبیه چیزی است که ما آن را “شاخص” می نامیم.

شاخص ها چگونه کار می کنند

یک شاخص مانند برچسب است روی هر شیشه موقعیت یک آیتم در لیست را به ما می گوید. اما ترفند اینجاست: در پایتون، ما شروع به شمارش از 0 می کنیم، نه از 1. بنابراین موارد در لیست پایتون با شروع از 0، سپس با 1، 2، و غیره برچسب گذاری می شوند. روی.

روش دسترسی به عناصر موجود در لیست

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

# Let's say we have a list of fruits
fruits = ["apple", "banana", "cherry"]

# To access the first fruit (apple), which is at index 0
first_fruit = fruits[0]
print(first_fruit)  # Output: apple

# To access the second fruit (banana), which is at index 1
second_fruit = fruits[1]
print(second_fruit)  # Output: banana

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

دانستن روش دسترسی به عناصر در یک لیست بسیار مفید است! مانند داشتن یک نقشه جادویی است که شما را مستقیماً به سمت شیرینی مورد نظر راهنمایی می کند.

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

لیست عملیات و روش ها

چگونه یک لیست را اصلاح کنیم

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

تصور کنید فهرست شما مانند یک کتاب دستور پخت است، جایی که می توانید مواد را به دلخواه اضافه، حذف یا مرتب کنید. در اینجا روش های کلیدی برای اصلاح لیست ها وجود دارد:

یک عنصر را اضافه کنید

یک عنصر را به انتهای لیست اضافه می کند، مانند افزودن یک ماده جدید به انتهای دستور غذا.

در اینجا نحو است: list_name.append(element)

و این هم یک نمونه کد:

fruits.append("orange")
# Explanation: We're adding "orange" to the end of the list 'fruits'.
# Result: fruits will now be ["apple", "banana", "cherry", "orange"]

یک عنصر را وارد کنید

یک عنصر را در یک شاخص خاص درج می کند، در صورت لزوم عناصر موجود را جابجا می کند، شبیه به افزودن یک ماده جدید در مرحله خاصی در دستور غذا.

پیشنهاد می‌کنیم بخوانید:  چگونه یک آرایه را بر اساس تاریخ در جاوا اسکریپت مرتب کنیم در این راهنمای کوتاه، تمام جنبه های ضروری مرتب سازی آرایه بر اساس تاریخ در جاوا اسکریپت را پوشش خواهیم داد. ساختار داده آرایه در جاوا اسکریپت دارای یک متد sort() داخلی است، اما برای مرتب سازی آرایه بر اساس تاریخ طراحی نشده است. فرمت های تاریخ زیادی وجود دارد ...

در اینجا نحو است: list_name.insert(index, element)

و این هم یک نمونه کد:

fruits.insert(1, "grape")
# Explanation: We're adding "grape" at index 1 in the list 'fruits', shifting other elements if needed.
# Result: fruits will now be ["apple", "grape", "banana", "cherry", "orange"]

حذف یک عنصر

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

در اینجا نحو است: list_name.remove(element)

و این هم یک نمونه کد:

fruits.remove("banana")
# Explanation: We're removing the first occurrence of "banana" from the list 'fruits'.
# Result: fruits will now be ["apple", "grape", "cherry", "orange"]

پاپ یک عنصر

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

در اینجا نحو است: list_name.pop(index)

و این هم یک نمونه کد:

removed_item = fruits.pop(1)
# Explanation: We're removing the item at index 1 ("grape") from the list 'fruits' and storing it in 'removed_item'.
# Result: removed_item will be "grape", fruits will now be ["apple", "cherry", "orange"]

یک لیست را گسترش دهید

لیست را با اضافه کردن همه عناصر از یک تکرار شونده، مانند افزودن مواد بیشتر به دستور غذای خود از دستور دیگری، گسترش می دهد.

در اینجا نحو است: list_name.extend(iterable)

و این هم یک نمونه کد:

more_fruits = ["mango", "pineapple"]
fruits.extend(more_fruits)
# Explanation: We're adding all the fruits from 'more_fruits' to the end of the list 'fruits'.
# Result: fruits will now be ["apple", "cherry", "orange", "mango", "pineapple"]

چگونه یک لیست را برش دهیم

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

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

نقاط شروع و پایان

  • فهرست شروع: اینجاست که بریدن کیک را شروع می کنید. اگر از اولین لایه کیک شروع کنید، ممکن است از همان لبه شروع کنید. هنگام انتخاب یک شاخص شروع، می توانید هر کدام را که دوست دارید انتخاب کنید – لازم نیست که اولین مورد باشد.
  • فهرست پایانی: اینجاست که از بریدن کیک خودداری می کنید. اگر در لایه سوم متوقف شوید، از آن نقطه فراتر نمی روید.

ضخامت برش (مرحله)

  • همانطور که می‌توانید برش‌های ضخیم‌تر یا نازک‌تر کیک را برش دهید، در برش دادن یک لیست، می‌توانید تصمیم بگیرید که چه تعداد عنصر در هر برش گنجانده شود.

در اینجا نحو برای برش آمده است:

list_name[start_index:end_index:step]

و در اینجا یک مثال کد برای نشان دادن روش کار آن وجود دارد:

# Let's say we have a list of cake layers
cake_layers = ["chocolate", "vanilla", "strawberry", "lemon", "red velvet"]

# Slicing the cake layers
slice_of_cake = cake_layers[1:4:2]
# Explanation: We're slicing 'cake_layers' starting from index 1 (vanilla) up to index 4 (lemon), 
#             and selecting every second element.
# Result: slice_of_cake will be ["vanilla", "lemon"]
  • فهرست شروع 1 (وانیل): اینجاست که بریدن کیک را شروع می کنیم.
  • پایان فهرست 4 (لیمو): از این لایه برش را متوقف می کنیم، اما لیمو را در نظر نمی گیریم.
  • مرحله 2: از هر لایه دیگر بین وانیل و لیمو می گذریم.
  • نتیجه: در نهایت یک برش حاوی لایه‌های وانیل و لیمو به پایان می‌رسانیم.

با برش دادن لیست‌ها، می‌توانید بخش‌های خاصی از داده‌های متناسب با نیازهای خود را استخراج کنید، درست مانند برش برش‌های کیک مطابق با ترجیحات مهمانانتان.

روش های فهرست رایج

طول

طول (تعداد عناصر) لیست را برمی‌گرداند، مشابه شمارش تعداد مواد در دستور پخت شما.

در اینجا نحو است: len(list_name)

و این هم یک نمونه کد:

length = len(fruits)
# Explanation: We're finding the number of elements in the list 'fruits'.
# Result: length will be 5
مرتب سازی

فهرست را در جای خود مرتب می کند، مانند مرتب کردن مواد به ترتیب حروف الفبا در دستور پخت.

در اینجا نحو است: list_name.sort()

و این هم یک نمونه کد:

fruits.sort()
# Explanation: We're sorting the elements of 'fruits' in ascending order.
# Result: fruits will now be ["apple", "cherry", "mango", "orange", "pineapple"]
مرتب شده است

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

در اینجا نحو است: sorted(list_name)

و این هم یک نمونه کد:

sorted_numbers = sorted(numbers)
# Explanation: We're creating a new list 'sorted_numbers' with the elements of 'numbers' sorted.
# Result: sorted_numbers will be [1, 2, 3, 4, 5], 'numbers' remains unchanged

مرتب سازی سفارشی در لیست های پایتون به شما امکان می دهد عناصر را بر اساس مرتب سازی کنید روی معیارهایی غیر از ترتیب طبیعی آنها. این با استفاده از اختیاری به دست می آید key پارامتر، که تابعی را برای فراخوانی مشخص می کند روی هر عنصر قبل از مرتب سازی در اینجا یک توضیح است:

مرتب سازی سفارشی و تابع کلید

تصور کنید مجموعه ای از کارت های دستور غذا دارید که هر کدام لیستی از مواد تشکیل دهنده دارند. اکنون، به جای اینکه این کارت های دستور العمل را بر اساس الفبای عنوان آنها مرتب کنید، می خواهید آنها را بر اساس مرتب سازی کنید روی تعداد مواد لازم برای هر دستور اینجاست که مرتب سازی سفارشی با تابع کلید وارد عمل می شود.

در اینجا سینتکس برای انجام این کار آمده است:

list_name.sort(key=function)
sorted_list = sorted(list_name, key=function)

حالا بیایید به یک مثال نگاه کنیم:

فرض کنید ما یک لیست از کارت های دستور غذا داریم، که در آن هر کارت یک تاپل است که حاوی نام دستور غذا و تعداد مواد لازم است:

recipes = [("Apple Pie", 9), ("Chocolate Cake", 7), ("Salad", 4), ("Pancakes", 6)]

اگر بخواهیم این کارت های دستور غذا را بر اساس مرتب کنیم روی با تعداد مواد مورد نیاز، می توانیم از یک تابع مرتب سازی سفارشی استفاده کنیم:

# Define a function to extract the number of ingredients from each recipe tuple
def get_num_ingredients(recipe):
    return recipe[1]

# Sort the recipes based روی the number of ingredients
recipes.sort(key=get_num_ingredients)

# Result: recipes will be [("Salad", 4), ("Pancakes", 6), ("Chocolate Cake", 7), ("Apple Pie", 9)]
  • ما یک تابع تعریف می کنیم get_num_ingredients که یک تاپل دستوری را به عنوان ورودی می گیرد و عنصر دوم تاپل (تعداد مواد) را برمی گرداند.
  • سپس از این تابع به عنوان تابع استفاده می کنیم key پارامتر در sort روش. پایتون این تابع را فراخوانی خواهد کرد روی هر دستور غذا را چند برابر کنید و از مقادیر بازگشتی برای مرتب سازی استفاده کنید.
  • در نتیجه، دستور العمل ها بر اساس مرتب شده اند روی تعداد مواد مورد نیاز، از کوچکترین تا بزرگترین.

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

معکوس

ترتیب عناصر را در جای خود معکوس می کند، مانند وارونه کردن دستور غذا.

در اینجا نحو است: list_name.reverse()

و در اینجا یک مثال است:

fruits.reverse()
# Explanation: We're reversing the order of elements in the list 'fruits'.
# Result: fruits will now be ["pineapple", "orange", "mango", "cherry", "apple"]
فهرست مطالب

اولین شاخص یک عنصر داده شده را برمی گرداند، شبیه به پیدا کردن آن page شماره ای که در آن یک ماده در کتاب دستور پخت شما ذکر شده است.

در اینجا نحو است: list_name.index(element)

و در اینجا یک مثال است:

index_of_cherry = fruits.index("cherry")
# Explanation: We're finding the index of the first occurrence of "cherry" in the list 'fruits'.
# Result: index_of_cherry will be 3
وجود عنصر را بررسی کنید

بررسی می کند که آیا عنصری در لیست وجود دارد، مانند تأیید اینکه آیا یک عنصر در دستور غذای شما فهرست شده است یا خیر.

پیشنهاد می‌کنیم بخوانید:  ایجاد فایل های اجرایی از اسکریپت های پایتون با py2exe

در اینجا نحو است: element in list_name

و در اینجا یک مثال است:

is_apple_present = "apple" in fruits
# Explanation: We're checking if "apple" exists in the list 'fruits'.
# Result: is_apple_present will be True
شمارش رخدادها

تعداد دفعاتی که یک عنصر خاص در لیست ظاهر می شود را برمی گرداند، مشابه شمارش تعداد دفعات استفاده از یک ماده در دستور پخت شما.

در اینجا نحو است: list_name.count(element)

و در اینجا یک مثال است:

count_of_orange = fruits.count("orange")
# Explanation: We're counting the number of times "orange" appears in the list 'fruits'.
# Result: count_of_orange will be 1

مفاهیم لیست پیشرفته

درک لیست

وقتی صحبت از کار با لیست ها در پایتون می شود، ابزار قدرتمندی به نام درک لیست در اختیار شماست. این نحو مختصر به شما امکان می دهد لیست هایی را بر اساس تولید کنید روی تکرارهای موجود به راحتی، کد شما را خواناتر و کارآمدتر می کند.

درک لیست یک راه مختصر برای ایجاد لیست با اعمال یک عبارت برای هر مورد در یک تکرار موجود، به صورت اختیاری با شرایط فیلتر ارائه می دهد.

مثال 1: ایجاد مربع اعداد

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

# Traditional Approach:
squares = []
for x in range(5):
    squares.append(x**2)

# Explanation:
# In the traditional approach, we initialize an empty list 'squares'. 
# We then loop through numbers from 0 to 4 using the range() function.
# For each number 'x', we calculate its square (x**2) and append it to the 'squares' list.

# List Comprehension:
squares = [x**2 for x in range(5)]

# Explanation:
# With list comprehension, we achieve the same result in a single line.
# We use a compact syntax to iterate over numbers from 0 to 4 and calculate their squares directly, 
# creating the list 'squares' in one go.

مثال 2: ایجاد اعداد زوج

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

# Traditional Approach:
even_numbers = []
for x in range(10):
    if x % 2 == 0:
        even_numbers.append(x)

# Explanation:
# In the traditional approach, we initialize an empty list 'even_numbers'. 
# We then loop through numbers from 0 to 9 using the range() function.
# For each number 'x', we check if it's even (divisible by 2), and if so, we append it to the 'even_numbers' list.

# List Comprehension:
even_numbers = [x for x in range(10) if x % 2 == 0]

# Explanation:
# With list comprehension, we achieve the same result more concisely.
# We use a compact syntax to iterate over numbers from 0 to 9 and include only those that are even,
# directly creating the list 'even_numbers' in one line.

مثال 3: ایجاد لیستی از رشته ها

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

# Traditional Approach:
names = ['Alice', 'Bob', 'Charlie']
uppercase_names = []
for name in names:
    uppercase_names.append(name.upper())

# Explanation:
# In the traditional approach, we initialize an empty list 'uppercase_names'. 
# We then loop through each name in the 'names' list.
# For each name, we convert it to uppercase using the upper() method and append the result to 'uppercase_names'.

# List Comprehension:
uppercase_names = [name.upper() for name in names]

# Explanation:
# With list comprehension, we achieve the same result more succinctly.
# We use a compact syntax to iterate over each name in the 'names' list,
# applying the upper() method to convert each name to uppercase,
# directly creating the list 'uppercase_names' in one line.

مثال 4: ایجاد لیستی از تاپل ها

حلقه های تودرتو معمولاً برای تولید ترکیبی از آیتم ها مانند جفت اعداد استفاده می شوند. با درک لیست، می توانید این را ساده کنید process با استفاده از حلقه های تو در تو به طور مستقیم در نحو درک، ایجاد چندین ترکیب بدون زحمت.

# Traditional Approach:
pairs = []
for x in range(3):
    for y in range(2):
        pairs.append((x, y))

# Explanation:
# In the traditional approach, we initialize an empty list 'pairs'. 
# We then use nested loops to iterate over each possible combination of x and y values.
# For each combination, we create a tuple (x, y) and append it to the 'pairs' list.

# List Comprehension:
pairs = [(x, y) for x in range(3) for y in range(2)]

# Explanation:
# With list comprehension, we achieve the same result more compactly.
# We use a compact syntax with nested loops to iterate over each possible combination of x and y values,
# directly creating the list 'pairs' containing tuples in one line.

مثال 5: ایجاد لیستی از ترکیبات

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

# Traditional Approach:
combinations = []
for x in range(1, 4):
    for y in range(1, 4):
        if x != y:
            combinations.append((x, y))

# Explanation:
# In the traditional approach, we initialize an empty list 'combinations'. 
# We then use nested loops to iterate over each possible combination of x and y values.
# For each combination where x is not equal to y, we create a tuple (x, y) and append it to the 'combinations' list.

# List Comprehension:
combinations = [(x, y) for x in range(1, 4) for y in range(1, 4) if x != y]

# Explanation:
# With list comprehension, we achieve the same result more succinctly.
# We use a compact syntax with nested loops and a conditional expression to iterate over each possible combination of x and y values,
# including only those where x is not equal to y,
# directly creating the list 'combinations' containing tuples in one line.

لیست های تو در تو

لیست ها در پایتون می توانند شامل لیست های دیگری باشند که ساختارهای چند بعدی ایجاد می کنند. این ویژگی برای نمایش ماتریس ها، جداول یا ساختارهای داده سلسله مراتبی مفید است. بیایید روش کار با لیست های تودرتو را بررسی کنیم:

روش ایجاد یک لیست تودرتو

nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

در این مثال یک لیست تودرتو تعریف می کنیم nested_list شامل سه لیست داخلی است که هر کدام نشان دهنده یک ردیف در یک ماتریس است.

روش دسترسی به عناصر در لیست های تودرتو

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

print(nested_list[0][1])  # Output: 2

این کد به عنصر در ردیف 0 و ستون 1 لیست تودرتو دسترسی پیدا می کند و مقدار را به دست می دهد. 2.

روش تکرار روی لیست های تودرتو

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

for sublist in nested_list:
    for item in sublist:
        print(item)

این کد روی هر فهرست فرعی در لیست تکرار می شود nested_list و سپس روی هر مورد در آن فهرست فرعی تکرار می شود و هر مورد را به صورت جداگانه چاپ می کند.

مثال 1: جمع کردن عناصر در یک لیست تودرتو
total_sum = 0
for sublist in nested_list:
    for item in sublist:
        total_sum += item
print("Total Sum:", total_sum)

در این مثال، ما روی هر فهرست فرعی و هر آیتم در فهرست فرعی تکرار می‌کنیم و تمام عناصر موجود در فهرست تودرتو را جمع می‌کنیم.

مثال 2: یافتن حداکثر مقدار در لیست تودرتو
max_value = float('-inf')  # Initialize with negative infinity
for sublist in nested_list:
    for item in sublist:
        if item > max_value:
            max_value = item
print("Maximum Value:", max_value)

در این مثال، ما حداکثر مقدار را در لیست تودرتو با تکرار روی هر فهرست فرعی و هر آیتم در فهرست فرعی، به روز رسانی max_value متغیر اگر با مقدار بزرگتری مواجه شد.

نتیجه

در این مقاله، جنبه های اساسی، عملیات و ویژگی های پیشرفته لیست های پایتون را بررسی کرده ایم. اکنون باید پایه ای قوی برای استفاده موثر از این ساختار داده همه کاره در سناریوهای مختلف برنامه نویسی داشته باشید.

اگر بازخوردی دارید، به من پیام دهید روی توییتر یا لینکدین