وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

پایتون: تاپل ها را به دیکشنری تبدیل کنید

0 11
زمان لازم برای مطالعه: 2 دقیقه


دیکشنری ها در پایتون پیاده سازی جداول هش هستند: یک ساختار داده روی کدام داده با یک کلید-مقدار برچسب گذاری می شود. این ساختار داده برای جستجوی داده ها توسط کلید خود، با زمان جستجوی O(1) مورد انتظار کارآمد است.

مهم است که در نظر داشته باشید که dict اشیاء قابل تغییر هستند و مقادیر کلیدی باید از نوع هش پذیر (یعنی غیرقابل تغییر) باشند.

تبدیل لیست تاپل ها به دیکشنری در پایتون

یکی از راه‌های ایجاد دیکشنری در پایتون، استفاده از فهرستی از تاپل‌ها در آن است (key,value) فرمت، به سادگی با فراخوانی dict() روش روی لیست شما:

my_data = (('John', 1), ('Joe', 2), ('Alice',3), ('Bob',4))
my_dict = dict(my_data)
print(my_dict)
{'John': 1, 'Joe': 2, 'Alice': 3, 'Bob': 4}

در واقع، این برعکس است dict.items() روش. این یک راه همه کاره برای ایجاد دیکته است! به عنوان مثال، شما می توانید داده های خود را با map قبل از تماس با dict() روش:

my_data = (('John', 1), ('Joe', 2), ('Alice',3), ('Bob',4))
my_dict = dict(map(reversed, my_data))
print(my_dict)
{1: 'John', 2: 'Joe', 3: 'Alice', 4: 'Bob'}

تاپل ها با انواع پیچیده به دیکشنری

گاهی بسته به روی ممکن است بخواهید یک فرهنگ لغت با چند کلید پیچیده ایجاد کنید – برای مثال، فرض کنید کلید شما از دو مقدار تشکیل شده است. را list نوع قابل تغییر است، به این معنی که قابل هش نیست. بنابراین، کد زیر یک خطا ایجاد می کند:

my_data = (((1,2) ,'John'), ((2,3), 'Joe'), ((3,4), 'Alice'), ((4,5),'Bob'))
my_dict = dict(my_data)
print(my_dict)
TypeError: unhashable type: 'list'

در این مورد، نوع تاپل می‌تواند دوباره به ما کمک کند – چون تاپل‌ها تغییر ناپذیر هستند، قابل هش هستند. این بدان معنی است که ما می توانیم از آنها به عنوان کلید برای دیکت خود استفاده کنیم، به شرح زیر:

my_data = (((1,2) ,'John'), ((2,3), 'Joe'), ((3,4), 'Alice'), ((4,5),'Bob'))
my_dict = dict(my_data)
print(my_dict)
{(1, 2): 'John', (2, 3): 'Joe', (3, 4): 'Alice', (4, 5): 'Bob'}

(برچسب‌ها به ترجمه)# python



منتشر شده در 1403-01-02 13:25:03

امتیاز شما به این مطلب
پیشنهاد می‌کنیم بخوانید:  بارگذاری بیش از حد توابع و عملگرها در پایتون
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

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