از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
پایتون: تاپل ها را به دیکشنری تبدیل کنید
سرفصلهای مطلب
دیکشنری ها در پایتون پیاده سازی جداول هش هستند: یک ساختار داده روی کدام داده با یک کلید-مقدار برچسب گذاری می شود. این ساختار داده برای جستجوی داده ها توسط کلید خود، با زمان جستجوی 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