آشنایی با Tuple و Dictionary در پایتون
در مقاله قبل درباره لیست در پایتون صحبت شد، حال در این مقاله قرار است در مورد Dictionary و Tuple صحبت شود. حتما توصیه میشود که قبل از خواندنِ این مقاله، مقاله لیست در پایتون را مطالعه نمایید.
Tuple
tuple، ساختار دادهای غیر قابل تغییر در پایتون است. tuple مانند لیست، دنبالهای است. تفاوت لیست و tuple در این است که tuple بعد از تعریف شدن، قابل تغییر نیست.
برای tuple بر خلاف لیست (که از [] استفاده میکند) از پرانتز استفاده میکنیم.
ZeroToHero_Topics = ("python" , "web" , "academic", "java", "android", "linux") print(ZeroToHero_Topics) # output: ('python', 'web', 'academic', 'java', 'android', 'linux')
شما میتوانید همانند لیست، در عنصرهای tuple هر نوع مقدار (لیست، tuple، عدد، رشته و …) را بگذارید.
دسترسی به مقادیرِ Tuple
برای دسترسی به مقادیر در یک tuple از اسم tuple به همراه شماره index آن استفاده میکنیم. برای مثال اگر بخواهیم اولین موضوع از ZeroToHero_Topics را به ما نشان دهد، از دستور زیر استفاده میکنیم:
print(ZeroToHero_Topics[0]) # output: python
عملیات دیگر بر روی Tuple
همانطور که گفته شد، tuple غیر قابل تغییر است، یعنی نمیتوان به آن اضافه یا از آن کم کرد (میتوان با دستور del کل tuple را پاک کرد) و حتی بروز رسانی کرد. ولی میتوان این را عملیات را با تعریف کردن tuple-های دیگری انجام داد. برای مثال اگر بخواهید به ZeroToHero_Topics موضوعِ Machine Learning را اضافه کنید، میتوانید به روشِ زیر عمل کنید.
ZeroToHero_Topics = ("python" , "web" , "academic", "java", "android", "linux",) temp_tuple = ("Machine Learning",) Final_tuple = ZeroToHero_Topics + temp_tuple print(Final_tuple) # output: python', 'web', 'academic', 'java', 'android', 'linux', 'Machine Learning')
توجه داشته باشد که زمانی که پرانتزِ tuple را میبندید، tuple را کاملا میبندید و برای مثال جمع کردنِ آن با tuple دیگر غیر ممکن میشود. اگر که فرض میکنید ممکن است در آینده بخواهید عملیاتی را روی tuple خود انجام دهید، بعد از آخرین عنصر آن comma بگذارید (همانند مثال بالا).
روش دیگری برای تعریفِ tuple، استفاه نکردن از پرانتز است.
test_tuple = 2, 5, 3, 1 print(test_tuple) # output: (2, 5, 3, 1)
Dictionary
دیکشنری (Dictionary)، ساختار دادهایِ دو مقداری در پایتون است. یعنی هر عنصر آن از دو قسمت تشکیل شده است: کلید و مقدار
بر خلافِ لیست و tuple که از شماره index برای دسترسی به مقادیر استفاده میکند، در دیکشنری باید از کلید استفاده کنیم. (دقیقا مانند دیکشنری که برای دیدنِ معنی یک کلمه، به دنبال خودِ کلمه میگردیم)
هر عنصر در دیکشنری با دو نقطه از هم جدا میشود، که در سمتِ چپِ دو نقطه، کلید و در سمتِ راستِ آن، مقدار آن کلید قرار میگیرد.
نوع داده کلید باید غیر قابل تغییر باشد، به عبارت دیگر از هر نوع دادهای به جز لیست و دیکشنری میتوان استفاده کرد، ولی برای مقدار این محدودیت وجود ندارد. این را هم در نظر داشته باشید که کلیدهای شما باید خاص باشند و نمیتوانید دو کلیدِ یکسان داشته باشید.
برای مثال دیکشنری زیر اسم افراد به عنوان کلید و سال تولد آنها به عنوان مقدار است:
person_birthday = {"Bill Gates":1955, "Steve Jobs":1955}
حال اگر بخواهیم سال تولد Bill Gates را چاپ کنیم، از دستور زیر استفاده میکنیم:
print(person_birthday["Bill Gates"]) # output: 1955
اضافه و بروزرسانی دیکشنری
اضافه کردن و بروزرسانی عنصر در دیکشنری روندی مشابه هم دارند. به دیکشنری باید کلید و مقدار را بدهیم، اگر آن کلید وجود داشته باشد مقدار آن را تغییر میدهد و اگر وجود نداشته باشد، عنصر جدیدی با آن کلید و مقدار میسازد.
person_birthday = {"Bill Gates":1955, "Steve Jobs":1955} person_birthday["Bill Gates"] = 1950 print(person_birthday) # output: {'Bill Gates': 1950, 'Steve Jobs': 1955}
person_birthday = {"Bill Gates":1955, "Steve Jobs":1955} person_birthday["Linus Torvalds"] = 1969 print(person_birthday) # output: {'Bill Gates': 1955, 'Steve Jobs': 1955, 'Linus Torvalds': 1969}
حذف کردن از دیکشنری
برای حذف کردن عنصری در دیکشنری از دستور del استفاده میکنیم. برای مثال اگر بخواهیم Bill Gates را حذف کنیم به صورت زیر عمل میکنیم:
person_birthday = {"Bill Gates":1955, "Steve Jobs":1955} del person_birthday["Bill Gates"] print(person_birthday) # output: {'Steve Jobs': 1955}
و برای پاک کردن کلِ محتویات دیکشنری از متد ()clear استفاده میکنیم:
person_birthday = {"Bill Gates":1955, "Steve Jobs":1955} person_birthday.clear() print(person_birthday) # output: {}
متدهای دیگر
- متد ()copy : ایجاد کپی از دیکشنری
person_birthday = {"Bill Gates":1955, "Steve Jobs":1955} person_birthday_1 = person_birthday.copy() print(person_birthday_1) # output: {'Steve Jobs': 1955, 'Bill Gates': 1955}
- متد ()get : مقدارِ عنصر را به ازای کلیدی که به آن میدهیم، بر میگرداند. تفاوت آن با حالت معمول این است که در این حالت اگر عنصری با کلیدِ مد نظر ما پیدا نشود به جای دریافت KeyError، به ما None بر میگرداند.
person_birthday = {"Bill Gates":1955, "Steve Jobs":1955} print(person_birthday["Navid Agz"]) ''' output: Traceback (most recent call last): File ".\zerotohero.py", line 2, in <module> print(person_birthday["Navid Agz"]) KeyError: 'Navid Agz'''
person_birthday = {"Bill Gates":1955, "Steve Jobs":1955} print(person_birthday.get("Navid Agz")) # output: None
- متد ()keys : کلیدهایِ عناصر دیکشنری را بر میگرداند.
person_birthday = {"Bill Gates":1955, "Steve Jobs":1955} print(person_birthday.keys()) # output: dict_keys(['Bill Gates', 'Steve Jobs'])
- متد ()values : مقادیرِ عناصر دیکشنری را بر میگرداند.
person_birthday = {"Bill Gates":1955, "Steve Jobs":1955} print(person_birthday.values()) # output: dict_values([1955, 1955])
- متد ()items : لیستی از کلید و مقادیر را در قالب tuple بر میگرداند.
person_birthday = {"Bill Gates":1955, "Steve Jobs":1955} print(person_birthday.items()) # output: dict_items([('Bill Gates', 1955), ('Steve Jobs', 1955)])
person_birthday = {"Bill Gates":1955, "Steve Jobs":1955} for key, value in person_birthday.items(): print(key, value) ''' output: Bill Gates 1955 Steve Jobs 1955'''
در این مقاله و مقاله قبل سعی شد به طورِ کامل مباحث ساختارهای دادهای دنبالهای گفته شود.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.