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