سایت خبرکاو

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

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

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

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

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

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

فهرست مطالب

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

نحوه ایجاد فهرست در پایتون

نحوه دسترسی به عناصر موجود در فهرست در پایتون

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

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

نتیجه

فهرست در پایتون چیست؟

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

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

برای مثال، فرض کنید قصد سفر به خواربار فروشی را دارید. شما می توانید یک فهرست پایتون به نام 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"]

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

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

این نحو است: 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 on 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"]
فهرست مطالب

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

این نحو است: 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
وجود عنصر را تحلیل کنید

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

در اینجا نحو عبارت است از: 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: ایجاد فهرست ی از تاپل ها

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

 # 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 در صورت مواجه شدن با مقدار بزرگ‌تر، می‌یابیم.

نتیجه

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

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

خبرکاو