زبان برنامهنویسی پایتون دارای انواع مختلفی از ساختارهای دادهای برای مدیریت و سازماندهی انواع داده است. نوع داده «لیست» (List) و «دیکشنری» (Dictionary) به عنوان پرکاربردترین «انواع داده» (Data Types) در پایتون محسوب میشوند که هر کدام از آنها کاربرد خاص خود را دارند. برنامهنویسان در بسیاری از پروژههای برنامهنویسی ممکن است بسته به نیاز خود، هر یک از این ساختار دادهها را به یکدیگر تبدیل کنند. در مقاله حاضر، در ابتدا به معرفی اجمالی هر یک از این دو نوع ساختار داده پرداخته شده و سپس انواع روشهای مختلف برای تبدیل دیکشنری به لیست در پایتون به همراه مثال شرح داده میشوند.
لیست در پایتون چیست ؟
لیست به عنوان یکی از رایجترین و پرکاربردترین ساختارهای داده پایتون تلقی میشود که از آن میتوان برای ذخیره مقادیر مختلف به صورت متوالی استفاده کرد. لیست در پایتون مشابه ساختار داده «آرایه» (Array) در سایر زبانهای برنامهنویسی است؛ با این حال، تفاوت اصلی لیست با آرایه در این است که لیستها برخلاف آرایهها میتوانند مقادیری با «نوع داده» (Data Type) مختلف را ذخیره کنند.
ویژگی های ساختار داده لیست در پایتون چیست ؟
لیستهای پایتون از ویژگیهای مهمی برخوردارند که در ادامه فهرست شدهاند:
- لیستها قابل تغییر هستند. به عبارتی، بعد از تعریف لیست، میتوان آیتمهای آن را تغییر داد.
- آیتمهای درون لیست به ترتیب ذخیره میشوند. البته میتوان ترتیب آیتمهای درون لیست را هم تغییر داد.
- به منظور دسترسی به آیتمهای درون لیست میتوان از اندیس استفاده کرد. به صورت پیشفرض، اولین اندیس لیستها با عدد صفر شروع میشود.
- لیستها برخلاف سایر ساختارهای داده پایتون نظیر دیکشنری و «مجموعه» (Set) میتوانند مقادیر تکراری را در خود ذخیره کنند.
- میتوان در پایتون لیستهای تودرتو ایجاد کرد. به عبارتی، یکی از آیتمهای لیستها میتواند خودش از نوع لیست باشد.
تعریف لیست در پایتون چگونه انجام میشود ؟
به منظور تعریف لیست در پایتون از علامت (براکت | [ ]) استفاده میشود. هر یک از آیتمهای درون لیست نیز با علامت ویرگول انگلیسی (کاما) از یکدیگر جدا میشوند و با اندیس میتوان به آیتمهای لیست دسترسی داشت. در مثال زیر، نمونهای از لیست با دادههای متفاوت ملاحظه میشود:
list_example = ["name", "python", "version", 3.9]
دیکشنری در پایتون چیست ؟
یکی دیگر از پرکاربردترین ساختارهای داده در زبان برنامهنویسی پایتون، دیکشنری است. آیتمهای درون دیکشنری از یک جفت «کلید» (Key) و «مقدار» (Value) تشکیل میشوند؛ به عبارتی، از این نوع ساختار داده برای نگاشت کلید به مقدار استفاده میشود.
ویژگی های ساختار داده دیکشنری در پایتون چیست ؟
ساختار داده دیکشنری پایتون دارای ویژگیهای مختلفی به شرح زیر است:
- برای ذخیره کردن آیتمهای درون دیکشنری، از ترتیب خاصی استفاده نمیشود؛ بدین ترتیب، نمیتوان برروی دیکشنری عملیات خاصی را در رابطه با ترتیب قرارگیری آیتمها انجام داد. به عنوان مثال، نمیتوان به اولین یا آخرین آیتم دیکشنری دسترسی داشت.
- برخلاف ساختار داده لیست، آیتمها در دیکشنری با استفاده از کلید اندیسگذاری میشوند. به عبارتی، تنها با استفاده از کلید میتوان به مقدار متناظر با آن کلید دسترسی داشت.
- کلیدهای دیکشنری مقادیر منحصربفردی دارند و از مقادیر تکراری نمیتوان برای کلیدها استفاده کرد.
- کلیدهای دیکشنری از نوع «رشته» (String) و عدد هستند. همچنین میتوان از ساختار داده «تاپل» (Tuple) با محتوای رشته و عدد نیز برای تعریف کلید در دیکشنریهای پایتون استفاده کرد.
تعریف دیکشنری در پایتون چگونه انجام میشود ؟
به منظور تعریف دیکشنری در پایتون از علامت آکولاد ( {}
) استفاده میشود. هر یک از آیتمهای درون دیکشنری (یعنی جفتهای کلید و مقدار) نیز با کاما از یکدیگر جدا میشوند و برای نگاشت کلید دیکشنری به مقدار آن میتوان از علامت :
استفاده کرد. در مثال زیر، نمونهای از تعریف دیکشنری ملاحظه میشود:
# string keys
dict_a = {"Param1": "value1", "Param2": "value2"}
print(dict_a)
{'Param1': 'value1', 'Param2': 'value2'}
# tuple keys
dict_b = {(1, 10): "value1", (1,20): "value2"}
print(dict_b)
{(1, 10): 'value1', (1, 20): 'value2'}
معرفی فیلم های آموزش پایتون
افراد علاقمند به یادگیری برنامه نویسی پایتون میتوانند از مجموعه فیلمهای جامع آموزشی پایتون در پلتفرم تم آف استفاده کنند. سایت تم آف مجموعهای آموزشی را برای آن دسته از افرادی فراهم کرده است که قصد یادگیری پایتون را دارند. دورههای گردآوری شده در مجموعه آموزش پایتون، فیلمهای آموزشی مقدماتی تا پیشرفته و پروژهمحور زبان پایتون را شامل میشوند. افراد میتوانند از دورههای جامع پایتون در راستای تقویت مهارت برنامه نویسی خود استفاده کنند و از آموزشهای پروژهمحور تم آف بهره بگیرند. در تصویر فوق تنها برخی از دورههای آموزشی مجموعه آموزش پایتون تم آف مشاهده میشوند.
- برای دسترسی به همه آموزش های پایتون تم آف + اینجا کلیک کنید.
روش های تبدیل دیکشنری به لیست در پایتون کدامند ؟
در اکثر پروژههای برنامهنویسی ممکن است برنامهنویس بر اساس نیاز خود انواع ساختار دادهها را به یکدیگر تبدیل کند. تبدیل دیکشنری به لیست در پایتون یکی از رایجترین فرآیندهای تبدیل دو ساختار داده است که در طی آن میتوان دیکشنری را به لیستهای یکبُعدی یا تودرتو تبدیل کرد. به منظور تبدیل دیکشنری به لیست میتوان از روشهای مختلفی نظیر استفاده از متدهای دیکشنری، حلقه، توابع و کتابخانههای پایتون استفاده کرد.
در ادامه، روشهای تبدیل دیکشنری به لیست به صورت دقیقتر فهرست شدهاند:
- تبدیل کردن دیکشنری به لیست در پایتون با استفاده از حلقه for
و متد append()
لیست
- استفاده از متد items()
برای تبدیل دیکشنری به لیست در پایتون
- تبدیل دیکشنری به لیست با استفاده از متد values()
- ذخیره کردن مقادیر دیکشنری در لیست با متد keys()
- استفاده همزمان از متد items()
و حلقه for
برای ذخیره آیتمهای دیکشنری در لیست
- استفاده از تابع zip()
برای تبدیل دیکشنری به لیست در پایتون
- تبدیل ساختار دیکشنری آیتمها به لیست در پایتون با استفاده از List Comprehension
- ذخیره کردن آیتمهای دیکشنری در لیست با تابع map()
- استفاده از کتابخانه Collections برای ذخیره آیتمهای دیکشنری در لیست
در بخش بعدی، به توضیح هر یک از روشهای ذکر شده فوق به همراه مثال اشاره میشود.
آموزش تبدیل دیکشنری به لیست در پایتون با استفاده از حلقه For و متد Append() چگونه است ؟
یکی از ابتداییترین روشها برای تبدیل دیکشنری به لیست در پایتون، استفاده از حلقه for
و متد append()
است. از این روش افراد تازهکار در حوزه برنامهنویسی پایتون استفاده میکنند زیرا با متدهای دیکشنری آشنایی ندارند. در این روش، از حلقه for
برای دسترسی به هر یک از آیتمهای دیکشنری استفاده شده و با دستور append()
میتوان آیتمهای دیکشنری را یکبهیک در لیست ذخیره کرد. در قطعه کد زیر، نحوه استفاده از این روش برای تبدیل دیکشنری به لیست در پایتون نشان داده شده است.
d = {"name":"python", "version":3.9}
new_list = []
for i in d:
k = [i, d[i]]
new_list.append(k)
print(new_list)
خروجی قطعه کد فوق در ادامه آمده است:
[['name', 'python'], ['version', 3.9]]
استفاده از متد Items() برای تبدیل دیکشنری به لیست در پایتون چطور انجام میشود؟
با استفاده از متد dict.items()
به همراه دستور list()
میتوان دیکشنری پایتون را به لیست تبدیل کرد. در این روش، هر یک از آیتمهای درون دیکشنری (هر جفت کلید و مقدار) که با دستور dict.items()
استخراج شدهاند، به آیتم جدیدی در لیست تبدیل میشوند. در قطعه کد زیر، نحوه استفاده از متد dict.items()
برای تبدیل دیکشنری به لیست در پایتون نشان داده شده است.
d = {"name":"python", "version":3.9}
new_list = list(d.items())
print(new_list)
خروجی قطعه کد فوق را میتوان در زیر ملاحظه کرد.
[('name', 'python'), ('version', 3.9)]
تبدیل دیکشنری به لیست با استفاده از متد Values()
با استفاده از متد dict.values()
میتوان مقادیر کلیدهای دیکشنری را استخراج و سپس با استفاده از دستور list()
آنها را در قالب لیست ذخیره کرد. در قطعه کد زیر، نحوه استفاده از متد dict.values()
برای تبدیل دیکشنری به لیست در پایتون نشان داده شده است:
d = {"name":"python", "version":3.9}
new_list = list(d.values())
print(new_list)
خروجی قطعه کد فوق را میتوان در ادامه ملاحظه کرد:
['python', 3.9]
ذخیره کردن مقادیر دیکشنری در لیست با متد Keys()
با استفاده از متد dict.keys()
میتوان کلیدهای دیکشنری را استخراج و سپس با دستور list()
آنها را در قالب لیست ذخیره کرد. در قطعه کد زیر، نحوه استفاده از متد dict.keys()
برای تبدیل دیکشنری به لیست در پایتون نشان داده شده است.
d = {"name":"python", "version":3.9}
new_list = list(d.keys())
print(new_list)
خروجی قطعه کد فوق را میتوان در زیر ملاحظه کرد.
['name', 'version']
استفاده همزمان از متد Items() و حلقه For برای ذخیره آیتمهای دیکشنری در لیست
با استفاده از حلقه for
و پیمایش هر یک از آیتمهای دیکشنری با دستور dict.items()
میتوان آیتمهای دیکشنری را در لیست ذخیره کرد. قطعه کد زیر، نحوه استفاده از حلقه for
به همراه متد dict.items()
را برای تبدیل دیکشنری به لیست در پایتون نشان میدهد.
d = {"name":"python", "version":3.9}
new_list = []
for key, val in d.items():
new_list.append([key, val])
print(new_list)
خروجی قطعه کد فوق را میتوان در زیر ملاحظه کرد.
[['name', 'python'], ['version', 3.9]]
استفاده از تابع Zip() برای تبدیل دیکشنری به لیست در پایتون
روش دیگری که از آن میتوان برای تبدیل دیکشنری به لیست در پایتون استفاده کرد، به وسیله تابع zip()
انجام میشود. از این تابع میتوان به منظور ترکیب کلیدها و مقادیر آنها استفاده کرد و ترکیب حاصل شده را در قالب تاپل، درون لیست ذخیره کرد. قطعه کد زیر، نحوه استفاده از تابع zip()
را برای تبدیل دیکشنری به لیست در پایتون نشان میدهد.
d = {"name":"python", "version":3.9}
new_list = zip(d.keys(), d.values())
new_list = list(new_list)
print(new_list)
خروجی قطعه کد فوق را میتوان در زیر ملاحظه کرد.
[('name', 'python'), ('version', 3.9)]
تبدیل ساختار دیکشنری به لیست در پایتون با استفاده از List Comprehension
روش List Comprehension یکی از سریعترین روشهای ساخت لیست در پایتون محسوب میشود. برای تبدیل دیکشنری به لیست در پایتون میتوان از این روش به همراه متد dict.items()
استفاده کرد. در قطعه کد زیر، نحوه استفاده از روش List Comprehension برای ذخیره کردن آیتمهای دیکشنری درون لیست ملاحظه میشود.
d = {"name":"python", "version":3.9}
new_list = [(k, v) for k, v in d.items()]
print(new_list)
خروجی قطعه کد فوق را میتوان در زیر ملاحظه کرد.
[('name', 'python'), ('version', 3.9)]
ذخیره کردن آیتمهای دیکشنری در لیست با تابع Map()
تابع map()
، در پایتون تابعی «توکار» (Built-in) محسوب میشود که از آن میتوان برای اعمال یک تابع برروی ساختار دادههایی نظیر لیست استفاده کرد. به منظور تبدیل دیکشنری به لیست در پایتون نیز میتوان دستور list
را به همراه متد dict.items()
به کار برد تا هر یک از آیتمهای دیکشنری به لیستی مجزا در پایتون تبدیل شوند. در قطعه کد زیر، نحوه استفاده از تابع map()
برای تبدیل دیکشنری به لیست در پایتون ملاحظه میشود:
d = {"name":"python", "version":3.9}
new_list = list(map(list, d.items()))
print(new_list)
خروجی قطعه کد فوق را میتوان در زیر ملاحظه کرد:
[['name', 'python'], ['version', 3.9]]
استفاده از کتابخانه Collections برای ذخیره دادههای دیکشنری درون لیست در پایتون
با استفاده از کتابخانه collections
و متد namedtuple()
میتوان چندین تاپل ایجاد کرد و به آنها نامهای مشخص اختصاص داد. به عبارتی، با استفاده از این کتابخانه میتوان ساختار داده سفارشی با مقادیری از نوع داده لیست ایجاد کرد. در قطعه کد زیر، نحوه استفاده از کتابخانه collections
برای تبدیل دیکشنری به لیست در پایتون ملاحظه میشود. در این مثال، برای هر یک از آیتمهای دیکشنری، عنوانهای name
و value
تعریف شده است.
import collections
d = {"name":"python", "version":3.9}
list_of_tuple = collections.namedtuple('List', 'name value')
new_list = list(list_of_tuple(*item) for item in d.items())
print(new_list)
خروجی قطعه کد فوق را میتوان در زیر ملاحظه کرد.
[List(name='name', value='python'), List(name='version', value=3.9)]
جمعبندی
در زبان برنامهنویسی پایتون، لیستها و دیکشنریها ساختار دادههایی هستند که هر کدام ویژگیهای خاص خود را دارند و برای مقاصد خاص استفاده میشوند. گاهی ممکن است نیاز به انجام عملیاتی روی یک دیکشنری وجود داشته باشد که با توجه به ماهیت آن نتوان این کار را روی دیکشنری انجام داد. در چنین شرایطی ممکن است نیاز به تبدیل دیکشنری به لیست در پایتون به وجود بیاید. در پایتون به راحتی میتوان دیکشنری را به لیست تبدیل کرد. در مطلب حاضر با عنوان «تبدیل دیکشنری به لیست در پایتون» پس از معرفی اجمالی این دو ساختار داده، به ویژگیهای اصلی آنها پرداخته شد. سپس، انواع روشهای تبدیل دیکشنری به لیست در پایتون به همراه مثال شرح داده شدند.