پایتون

جلسه ۷۴: تبدیل ساختمان داده ها به یکدیگر در پایتون

در این درس به بررسی راههای موجود برای تبدیل ساختمان‌های داده به یکدیگر می‌پردازیم. ما قبلا دیدیم که چگونه میتوانیم نوع داده‌های موجود در پایتون را به یکدیگر تبدیل کنیم. اکنون همین منوال را میتوانیم برای ساختمان داده‌ها داشته باشیم!

تبدیل صریح

یک راهکارصریح برای تبدیل از یک ساختمان داده به یک ساختمان دیگر به صورت زیر است:

destination_structure_name(source_structure_object)

destination_structure_name نام ساختمان داده‌ای است که میخواهیم به آن تبدیل بشود. source_structure_object شی ای است که میخواهیم عملیات تبدیل روی آن انجام شود.

تبدیل به لیست

میتوانیم tuple ها،set ها یا دیکشنری ها را به یک لیست با استفاده از تابع ()list تبدیل کنیم. البته در مورد دیکشنری‌ها فقط key ها به لیست تبدیل میشوند.

star_wars_tup = ("Anakin", "Darth Vader", 1000)
print(star_wars_tup)
star_wars_set = {"Anakin", "Darth Vader", 1000}
print(star_wars_set)
star_wars_dict = {1: "Anakin", 2: "Darth Vader", 3: 1000}
print(star_wars_dict)

star_wars_list = list(star_wars_tup)  # Converting from tuple
print(star_wars_list)

star_wars_list = list(star_wars_set)  # Converting from set
print(star_wars_list)

star_wars_list = list(star_wars_dict)  # Converting from dictionary
print(star_wars_list)

میتوانیم با روش ()dict.items روی یک دیکشنری، آن را به مجموعه‌ای از (key,value) ها تبدیل کنیم تا عملیات هایی نظیر حرکت کردن روی اعضا به سادگی قابل انجام باشد. بعد از این کار نیز میتوانید tuple ساخته شده را با ()list به یک لیست تبدیل کنید.

star_wars_dict = {1: "Anakin", 2: "Darth Vader", 3: 1000}
print(star_wars_dict)

star_wars_list = list(star_wars_dict.items())
print(star_wars_list)

تبدیل به Tuple

هر نوع ساختمان داده‌ای میتواند با استفاده از ()tuple به tuple تبدیل شود. البته در مورد دیکشنری‌ها فقط key ها به tuple تبدیل میشوند.

star_wars_list = ["Anakin", "Darth Vader", 1000]
print(star_wars_list)
star_wars_set = {"Anakin", "Darth Vader", 1000}
print(star_wars_set)
star_wars_dict = {1: "Anakin", 2: "Darth Vader", 3: 1000}
print(star_wars_dict)

star_wars_tup = tuple(star_wars_list)  # Converting from list
print(star_wars_tup)

star_wars_tup = tuple(star_wars_set)  # Converting from set
print(star_wars_tup)

star_wars_tup = tuple(star_wars_dict)  # Converting from dictionary
print(star_wars_tup)

تبدیل به set

تابع سازنده ()set میتواند برای تبدیل هر ساختمان داده‌ای به set ها استفاده شود.البته در مورد دیکشنری‌ها فقط key ها به set تبدیل میشوند.

star_wars_list = ["Anakin", "Darth Vader", 1000]
print(star_wars_list)
star_wars_tup = ("Anakin", "Darth Vader", 1000)
print(star_wars_tup)
star_wars_dict = {1: "Anakin", 2: "Darth Vader", 3: 1000}
print(star_wars_dict)

star_wars_set = set(star_wars_list)  # Converting from list
print(star_wars_set)

star_wars_set = set(star_wars_tup)  # Converting from tuple
print(star_wars_set)

star_wars_set = set(star_wars_dict)  # Converting from dictionary
print(star_wars_set)

تبدیل به دیکشنری‌

تابع سازنده ()dict نمیتواند مانند سایرین استفاده شود چراکه نیاز به جفت key-value ها به جای یک value مشخص دارد. بنابراین داده‌ها باید به صورت یک جفت باشند. به عنوان مثال، یک لیست از tuple ها که طول هر tuple عدد ۲ است را به دیکشنری تبدیل میکنیم. این جفت ها میتواند به جفت key-value تبدیل شود:

star_wars_list = [[1,"Anakin"], [2,"Darth Vader"], [3, 1000]]
print (star_wars_list)
star_wars_tup = ((1, "Anakin"), (2, "Darth Vader"), (3, 1000))
print (star_wars_tup)
star_wars_set = {(1, "Anakin"), (2, "Darth Vader"), (3, 1000)}
print (star_wars_set)

star_wars_dict = dict(star_wars_list) # Converting from list
print(star_wars_dict)

star_wars_dict = dict(star_wars_tup) # Converting from tuple
print(star_wars_dict)

star_wars_dict = dict(star_wars_set) # Converting from set
print(star_wars_dict)

الیته راه های دیگری هم برای تبدیل بین ساختمان های‌داده وجود دارد، اما آن ها راه‌حل های صریحی نیستند. قبل از آنکه به بخش کتابخانه های پایتون برویم، کوییزی که در مورد ساختمان های داده موجود است را امتحان کنید!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا