تبدیل لیست به دیکشنری در پایتون – از صفر تا صد و رایگان


در زبان برنامه نویسی پایتون میتوان از انواع ساختارهای دادهای متفاوت برای سازماندهی دادهها استفاده کرد. دو نوع داده (Data Type) رایج در پایتون، «لیست» (List) و «دیکشنری» (Dictionary) هستند که هر کدام از آنها کاربرد و ویژگی خاص خود را دارند. برنامه نویس در پروژههای برنامه نویسی بنا به نیاز خود میتواند هر یک از این ساختار دادهها را به یکدیگر تبدیل کند. در مقاله حاضر، پس از معرفی مختصر دو نوع ساختار داده لیست و دیکشنری، به انواع روشهای مختلف برای تبدیل لیست به دیکشنری در پایتون پرداخته میشود.
نوع داده لیست در پایتون چیست ؟
نوع داده لیست، یکی از رایجترین و پرکاربردترین ساختارهای داده پایتون است که از آن میتوان برای ذخیره مقادیر مختلف به صورت متوالی استفاده کرد. لیست در پایتون، مشابه ساختار داده «آرایه» (Array) در سایر زبانهای برنامه نویسی است؛ با این حال، برخلاف آرایه، لیستهای پایتون میتوانند مقادیری با انواع داده مختلف را ذخیره کنند. ساختار داده لیست در پایتون دارای ویژگیهایی است که در ادامه فهرست شدهاند:
- قابل ویرایش بودن مقادیر درون لیست پس از تعریف ساختار داده لیست
- قابلیت اندیسگذاری برای مقادیر درون لیست بهمنظور حفظ ترتیب مقادیر و دسترسی به آنها
- قابلیت ذخیره مقادیر تکراری برخلاف سایر ساختارهای داده پایتون نظیر دیکشنری و «مجموعه» (Set)
- قابلیت ایجاد ساختار دادههای تودرتو درون لیست
در زبان پایتون میتوان از «قلاب» (براکت | کروشه) یعنی «[ ]» برای تعریف لیست استفاده کرد. هر یک از آیتمهای درون لیست نیز با علامت ویرگول انگلیسی (کاما) از یکدیگر جدا میشوند و با اندیس میتوان به آیتمهای لیست دسترسی داشت. در مثال زیر، نمونهای از لیست با دادههای متفاوت ملاحظه میشود:
نوع داده دیکشنری در پایتون چیست ؟
ساختار داده دیکشنری به عنوان یکی دیگر از انواع داده پرکاربرد در پایتون محسوب میشود. میتوان از دیکشنری بهمنظور ذخیره آیتمها به شکل جفتی از «کلید» (Key) و «مقدار» (Value) استفاده کرد. ساختار داده دیکشنری پایتون دارای ویژگیهای مختلفی است که در ادامه فهرست شدهاند:
- ذخیره آیتمهای دیکشنری بدون لحاظ کردن ترتیب
- دسترسی به مقادیر دیکشنری با استفاده از کلید
- عدم استفاده از مقادیر تکراری برای کلیدهای دیکشنری
- استفاده از ساختار دادههای مختلف برای تعریف کلیدهای دیکشنری
بهمنظور تعریف دیکشنری در پایتون از علامت آکولاد ({} ) استفاده میشود. هر یک از آیتمهای درون دیکشنری (یعنی جفتهای کلید و مقدار) نیز با کاما از یکدیگر جدا میشوند و برای نگاشت کلید دیکشنری به مقدار آن میتوان از علامت دونقطه «:» استفاده کرد. در مثال زیر، نمونهای از تعریف دیکشنری ملاحظه میشود:
خروجی قطعه کد فوق، به صورت زیر است:
dict_a: {'Param1': 'value1', 'Param2': 'value2'}<br>dict_b: {(1, 10): 'value1', (1, 20): 'value2'}
روش های تبدیل لیست به دیکشنری در پایتون کدامند ؟
در پروژههای برنامه نویسی ممکن است نیاز باشد نوع دادهها تغییر کنند. در مطالب قبلی، تبدیل دیکشنری به لیست در پایتون را توضیح دادیم. یکی دیگر از پرکاربردترین فرایندهای تبدیل دو ساختار داده، تبدیل لیست به دیکشنری در پایتون است که در طی آن میتوان آیتمهای لیست را به جفت مقادیر کلید-مقدار تبدیل کرد. بهمنظور تبدیل لیست به دیکشنری در پایتون میتوان از روشهای مختلفی نظیر استفاده از متدهای دیکشنری، حلقه، توابع و کتابخانههای پایتون استفاده کرد. حالتها و روشهایی که میتوان بهمنظور تبدیل لیست به دیکشنری در پایتون درنظر گرفت، در ادامه فهرست شدهاند:
- استفاده از حلقه For برای تبدیل لیست به دیکشنری
- استفاده از تابعZip()بهمنظور تبدیل لیست به دیکشنری در پایتون
- تبدیل لیست به دیکشنری با استفاده از روش «برش» (Slicing)
- استفاده از دستورenumerate()برای تغییر لیست پایتون به دیکشنری
- تبدیل لیست به دیکشنری در پایتون با استفاده از dict.fromkeys()
- تبدیل لیستی از «تاپلها» (Tuples) به دیکشنری
- تبدیل دو لیست به دیکشنری در پایتون
- تبدیل دو لیست با طول یکسان به دیکشنری
- استفاده از حلقه For برای تبدیل دو لیست با طول یکسان به دیکشنری
- تبدیل دو لیست با طول یکسان به دیکشنری با استفاده از تابعZip()
- تبدیل دو لیست با طولهای متفاوت به دیکشنری
- تبدیل دو لیست با طول یکسان به دیکشنری
- تبدیل لیستی از دیکشنریها به دیکشنری
- استفاده از dict.update()
- استفاده از Dictionary Comprehension
- استفاده از Collenctions.ChainMap
در ادامه مطلب، پس از معرفی مجموعه فیلمهای آموزش پایتون، به توضیح هر یک از حالتها و روشهای ذکر شده در فوق به همراه مثال اشاره میشود.
معرفی فیلم های آموزش پایتون

فرادرس برای علاقهمندان به یادگیری برنامه نویسی پایتون مجموعهای از دورههای آموزشی جامع و کاربردی را فراهم کرده است. دورههای گردآوری شده در مجموعه آموزش پایتون، فیلمهای آموزشی مقدماتی تا پیشرفته و پروژهمحور زبان پایتون را شامل میشوند. افراد میتوانند از دورههای جامع پایتون در راستای تقویت مهارت برنامه نویسی خود استفاده کنند و از آموزشهای پروژهمحور فرادرس بهره بگیرند. در تصویر فوق تنها برخی از دورههای آموزشی مجموعه آموزش پایتون فرادرس مشاهده میشوند.
- برای دسترسی به همه آموزش های پایتون فرادرس + اینجا کلیک کنید.
تبدیل لیست به دیکشنری در پایتون با استفاده از حلقه For
از حلقه For میتوان برای تبدیل نوع داده لیست به دیکشنری استفاده کرد. میتوان این حلقه را به صورت ساده یا با استفاده از List Comprehension به کار برد. در قطعه کد زیر، نمونهای از کاربرد List Comprehension برای تبدیل لیست به دیکشنری در پایتون ملاحظه میشود.
خروجی قطعه کد فوق، به صورت زیر است:
Output: {'frog': 'dog', 'Goat': 'cat'}
تبدیل لیست به دیکشنری در پایتون با استفاده از تابع Zip()
میتوان به جای حلقه For از تابعZip() برای تبدیل لیست به دیکشنری در پایتون استفاده کرد. این روش، سادهتر و بهینهتر از روش قبلی است. در قطعه کد زیر، مثالی از کاربرد تابعZip()برای تبدیل لیست به دیکشنری ملاحظه میشود.
خروجی قطعه کد فوق، به صورت زیر است:
Output: {'frog': 'dog', 'Goat': 'cat'}
چنانچه تعداد آیتمهای درون لیست، فرد باشد، تابعZip()آیتمی را نادیده میگیرد که بدون جفت باقی میماند. به عنوان مثال، اگر طول لیست، برابر با 5 باشد، تابعZip()پنجمین آیتم لیست را نادیده گرفته و فقط برای چهار آیتم اول لیست، تاپل ایجاد میکند. در قطعه کد زیر، مثالی از توضیح ارائه شده ملاحظه میشود.
خروجی قطعه کد فوق، به صورت زیر است:
Output: {'first': 'second', 'third': 'fourth'}
تبدیل لیست پایتون به دیکشنری با برش زدن (Slicing)
برش (Slicing) لیست جدیدی را با استفاده از لیست تعریف شده از قبل، ایجاد میکند. به عبارتی، میتوان با استفاده از مشخص کردن بازه اندیسها و گامها، برخی از آیتمهای لیست را به صورت زیر استخراج کرد.
در مثال زیر، نحوه استفاده از روش برش برای تبدیل لیست به دیکشنری در پایتون ملاحظه میشود. در این مثال، لیستی با عنوانl1 تعریف شده است که با استفاده از روش برش، دو لیست جدید با عنوانهایl2وl3از روی لیستl1ایجاد میشوند. آیتمهای لیستl2به عنوان کلیدها و آیتمهای لیستl3به عنوان مقادیر کلیدها در نظر گرفته شدهاند. در نهایت، با استفاده از تابعZip()، تاپلهایی از جفت آیتمهایl2وl3ایجاد شده که در نهایت با دستورdict() به جفت مقادیر کلید-مقدار تبدیل میشوند.
خروجی قطعه کد فوق، به صورت زیر است:
Output:{1: 'a', 2: 'b', 3: 'c', 4: 'd'}
تبدیل لیست پایتون به دیکشنری با استفاده از دستور Enumerate()
از تابعenumerate() میتوان برای تبدیل لیست به دیکشنری در پایتون استفاده کرد. با استفاده از این دستور، به تعداد آیتمهای لیست، اندیسهایی (با شروع از مقدار صفر) ایجاد میشوند که میتوان با استفاده از دستورdict() ، اندیسها را به کلید و آیتمهای لیست را به مقادیر کلیدها تبدیل کرد. در قطعه کد زیر، نحوه استفاده از دستورenumerate() برای تبدیل لیست به دیکشنری در پایتون ملاحظه میشود.
خروجی قطعه کد فوق، به صورت زیر است:
Output:{0: 'a', 1: 'b', 2: 'c', 3: 'd'}
تبدیل لیست به دیکشنری در پایتون با استفاده از dict.fromkeys()
پارامترهای ورودی دستورdict.fromkeys() ، لیستی از کلیدها و مقدار خاصی برای تخصیص به کلیدها هستند. به عبارتی، با استفاده از این دستور میتوان مقدار یکسانی را به لیستی از کلیدها اختصاص داد. در قطعه کد زیر، مثالی از نحوه کاربرد دستورdict.fromkeys() برای تبدیل لیست به دیکشنری در پایتون ملاحظه میشود.
خروجی قطعه کد فوق، به صورت زیر است:
#Output:{'red': 'colors', 'blue': 'colors', 'orange': 'colors'}
تبدیل لیستی از تاپلها به دیکشنری
چنانچه لیستی از تاپلها تعریف شده باشد، میتوان با دستورdict() بهراحتی و مستقیماً یک دیکشنری با جفت مقادیر کلید-مقدار ایجاد کرد. مثال زیر، روش تبدیل لیست به دیکشنری را با استفاده از دستورdict() و لیستی از تاپلها نشان میدهد.
خروجی قطعه کد فوق، در ادامه آمده است:
Output:{'red': 1, 'blue': 2, 'green': 3}
تبدیل دو لیست به دیکشنری در پایتون
چنانچه نیاز باشد دو لیست پایتون را به یک دیکشنری تبدیل کرد، در ابتدا باید بررسی کرد که آیا طول دو لیست، یکسان هستند یا طول مختلفی دارند. روشهای مجزایی برای تبدیل دو لیست با طول مشابه و مغایر وجود دارد که در ادامه فهرست شدهاند:
- تبدیل دو لیست با طول یکسان به دیکشنری
- استفاده از حلقه For برای تبدیل دو لیست با طول یکسان به دیکشنری
- تبدیل دو لیست با طول یکسان به دیکشنری با استفاده از تابعZip()
- تبدیل دو لیست با طولهای متفاوت به دیکشنری
- استفاده از تابعZip_Longest() برای تبدیل دو لیست با طولهای متفاوت به دیکشنری
در ادامه، به توضیح هر یک از روشهای فوق به همراه مثالی از پایتون پرداخته میشود.
تبدیل دو لیست با طول یکسان به دیکشنری
بهمنظور تبدیل دو لیست با طول یکسان به دیکشنری در پایتون میتوان از دو روش حلقه For و تابعZip()استفاده کرد که در ادامه با ارائه مثال به آنها پرداخته میشود.
استفاده از حلقه For برای تبدیل دو لیست با طول یکسان به دیکشنری
با استفاده از حلقه For میتوان آیتمهای درون دو لیست با طول یکسان را به جفت مقادیر کلید-مقدار تبدیل کرد. در قطعه کد زیر، نحوه استفاده از این روش در قالب مثال ملاحظه میشود.
خروجی قطعه کد فوق، به صورت زیر است:
Output: {1: 'frog', 3: 'dog', 24: 'Goat', 56: 'cat'}
استفاده از تابع Zip() برای تبدیل دو لیست با طول یکسان به دیکشنری
چنانچه دو لیست با طول یکسان وجود داشته باشند، میتوان با استفاده از تابعZip()یک دیکشنری جدید با مقادیر دو لیست ایجاد کرد. خروجی تابعZip()مجموعهای از تاپلها است. با استفاده از دستورdict() میتوان خروجیZip()را به دیکشنری تبدیل کرد. در قطعه کد زیر، مثالی از تابعZip()برای تبدیل لیست به دیکشنری در پایتون ملاحظه میشود.
خروجی قطعه کد فوق، به صورت زیر است:
Output:{1: 'a', 2: 'b', 3: 'c', 4: 'd'}
تبدیل دو لیست با طولهای متفاوت به دیکشنری
بهمنظور تبدیل دو لیست با طولهای متفاوت به دیکشنری در پایتون میتوان از تابعZip_Longest()استفاده کرد. این تابع به صورت پیشفرض به کلیدهایی که مقدار ندارند، مقدار None را اختصاص میدهد. در مثال زیر، نحوه کاربرد تابعZip_Longest()بهمنظور تبدیل لیست به دیکشنری در پایتون ملاحظه میشود.
خروجی قطعه کد فوق، به صورت زیر است:
Output: {'Cat': 1, 'Dogs': 4, 'Rats': 6, 'Fruits': None, 'ducks': None}
تابعZip_Longest()دارای پارامتری با عنوانfillvalue است که با استفاده از آن میتوان مقدار پیشفرض کلیدهایی را مشخص کرد که دارای مقدار نیستند. در قطعه کد زیر، مقدار 10 برای کلیدهای Fruits و Ducks درنظر گرفته شده است.
خروجی قطعه کد فوق، در ادامه ملاحظه میشود.
Output: {'Cat': 1, 'Dogs': 4, 'Rats': 6, 'Fruits': '10', 'ducks': '10'}
نحوه تبدیل لیستی از دیکشنری ها به دیکشنری در پایتون چگونه است ؟
بهمنظور تبدیل لیستی از دیکشنریها به یک دیکشنری در پایتون میتوان از سه روش استفاده کرد:
- استفاده از dict.update()
- استفاده از Dictionary Comprehension
- استفاده از Collenctions.ChainMap
در ادامه، به نحوه استفاده از هر سه روش ذکر شده در بالا به همراه مثال پرداخته میشود.
تبدیل لیستی از دیکشنریها به دیکشنری با استفاده از dict.update()
با استفاده از حلقه For بهمنظور پیمایش آیتمهای لیست و دستورdict.update() میتوان مقادیر لیست را در دیکشنری جدیدی ذخیره کرد. در مثال زیر، نمونهای از کاربرد دستورdict.update() برای تبدیل لیست به دیکشنری در پایتون ملاحظه میشود.
خروجی قطعه کد فوق، به صورت زیر است:
Output:{1: 'a', 2: 'b', 3: 'c', 4: 'd'}
تبدیل لیستی از دیکشنریها به دیکشنری با استفاده از Dictionary Comprehension
بهمنظور تبدیل لیستی از دیکشنریها به دیکشنری در پایتون میتوان از Dictionary Comprehension استفاده کرد. در مثال زیر، نحوه استفاده از این روش ملاحظه میشود.
خروجی قطعه کد فوق، به صورت زیر است:
Output:{1: 'a', 2: 'b', 3: 'c', 4: 'd'}
در قطعه کد فوق، دستورfor e in l1 پیمایشی بر روی لیست l1 انجام میدهد و آیتمهای لیست l1 را برمیگرداند. دستورfor (k,v) in e.items() نیز جفت کلید-مقدار دیکشنری درون لیست را به خروجی بازمیگرداند.
کاربرد Collenctions.ChainMap برای تبدیل لیستی از دیکشنریها به دیکشنری
با استفاده از کتابخانه Collections میتوان لیستی از دیکشنریها را به یک دیکشنری در پایتون تبدیل کرد. در قطعه کد زیر، میتوان نحوه استفاده از این کتابخانه را در قالب مثال ملاحظه کرد.
خروجی قطعه کد فوق، به صورت زیر است:
Output:ChainMap({1: 'a', 2: 'b'}, {3: 'c', 4: 'd'}) Output:{3: 'c', 4: 'd', 1: 'a', 2: 'b'}
نوع خروجی دستور ChainMap شئ ChainMap Object است که میتوان آن را با دستورdict() به دیکشنری تبدیل کرد.
تبدیل لیست های تودرتو به دیکشنری در پایتون با Dictionary Comprehension
میتوان لیستهای تودرتو را با روش Dictionary Comprehension به دیکشنری پایتون تبدیل کرد. در مثال زیر، نحوه استفاده از این روش برای تبدیل لیست به دیکشنری در پایتون ملاحظه میشود.
خروجی قطعه کد فوق، به صورت زیر است:
Output:{1: 2, 3: 4, 5: [6, 7]}
تبدیل لیست به دیکشنری در پایتون با Counter
با استفاده از کتابخانه Collections و کلاسCounter()میتوان لیست را به دیکشنری تبدیل کرد. کلاسCounter() بهمنظور شمارش آیتمهای یکتای لیست استفاده میشود. به عبارتی، کلاسCounter()لیست را به جفت مقادیر کلید و بسامد کلید در لیست تبدیل میکند. در قطعه کد زیر، نحوه استفاده از این کلاس برای تبدیل لیست به دیکشنری در پایتون ملاحظه میشود.
خروجی قطعه کد فوق، به صورت زیر است:
Output:Counter({'b': 3, 'c': 2, 'a': 2}) Output:{'c': 2, 'b': 3, 'a': 2}
جمعبندی
دیکشنری پایتون یکی از انواع ساختار دادهای است که دسترسی به آیتمهای ذخیره شده را ساده میکند. به همین دلیل، در بسیاری از پروژههای برنامه نویسی نیاز است که از این ساختار داده استفاده شود یا انواع دیگر ساختار دادهها را به دیکشنری تبدیل کرد. در مقاله حاضر با عنوان «تبدیل لیست به دیکشنری در پایتون — از صفر تا صد و رایگان» ضمن توضیح انواع روشهای تبدیل لیست به دیکشنری، برای هر یک از این روشها مثالهایی کاربردی ارائه شد.