زبانهای برنامه نویسی با پشتیبانی از انواع داده (Data Type)، برنامه نویسی را برای توسعهدهندگان آسانتر کردهاند. پایتون نیز یکی از این زبانهای برنامه نویسی است که علاوه بر پشتیبانی از دادههای مختلف، ساختاری آسان برای تعریف هر کدام از انواع داده پیادهسازی کرده است. در قسمت قبل آموزش مقدماتی پایتون برخی از انواع داده در پایتون را به شما آموزش دادیم و در این قسمت انواع دیگر داده را بررسی خواهیم کرد. از شما دعوت میکنیم تا در ادامهی این آموزش، همچنان با ما همراه باشید.
در آموزش قبلی، سه نوع دادهی پایتون شامل اعداد، رشتهها و لیستها را معرفی کردیم و به صورت اجمالی آموزش دادیم. در این قسمت، سه نوع دادهی دیگر پایتون، یعنی تاپلها (Tuples)، مجموعهها (Sets) و دیکشنریها (Dictionary) را به شما آموزش خواهیم داد.
تاپل در پایتون، بسیار شبیه به لیست (List) است و مقادیر ذخیره شده در آن همانند لیست، میتواند از هر نوع داده باشد. برای پیمایش یک تاپل، میتوان با استفاده از اعداد صحیح آن را نمایه (Index) کرد.
توالی مقادیر یک تاپل با ویرگول (,) از هم جدا میشوند. به طور معمول، تاپل داخل یک پرانتز ایجاد میشود، هر چند این کار بدون پرانتز نیز امکانپذیر است. داشتن پرانتز سبب میشود، تاپل پایتون، بهتر و آسانتر درک شود.
مقاله مفید : " بهترین ide برای پایتون "
همانگونه که گفته شد، با قرار دادن توالی مقادیری که با ویرگول از هم جدا شدهاند، داخل یک پرانتز یا حتی بدون پرانتز، یک تاپل ایجاد میشود. به قطعه کد زیر توجه کنید:
#Creating an empty Tuple
Tuple1 = ()
print("Initial empty Tuple: ")
print (Tuple1)
#Creatting a Tuple
#with the use of string
Tuple1 = ('7Learn', 'For')
print("\nTuple with the use of String: ")
print(Tuple1)
# Creating a Tuple with
# the use of list
list1 = [1, 2, 4, 5, 6]
print("\nTuple using List: ")
print(tuple(list1))
#Creating a Tuple
#with the use of built-in function
Tuple1 = tuple('7Learn')
print("\nTuple with the use of function: ")
print(Tuple1)
خروجی
Initial empty Tuple: () Tuple with the use of String: ('7Learn', 'For') Tuple using List: (1, 2, 4, 5, 6) Tuple with the use of function: ('7', 'L', 'e', 'a', 'n')
تاپلها میتوانند شامل هر تعداد عنصر، از هر نوع داده از جمله رشتهها، اعداد، لیستها و... باشند. برای ایجاد یک تاپل با یک عنصر واحد، باید در انتهای عنصر یک ویرگول گذاشته شود.
#Creating a Tuple
#with Mixed Datatype
Tuple1 = (5, 'Welcome', 9, '7Learn')
print("\nTuple with Mixed Datatypes: ")
print(Tuple1)
#Creating a Tuple
#with nested tuples
Tuple1 = (0, 1, 2, 3)
Tuple2 = ('python', '7Learn')
Tuple3 = (Tuple1, Tuple2)
print("\nTuple with nested tuples: ")
print(Tuple3)
#Creating a Tuple
#with repetition
Tuple1 = ('7Learn',) * 3
print("\nTuple with repetition: ")
print(Tuple1)
#Creating a Tuple
#with the use of loop
Tuple1 = ('7Learn')
n = 5
print("\nTuple with a loop")
for i in range(int(n)):
Tuple1 = (Tuple1,)
print(Tuple1)
خروجی
Tuple with Mixed Datatypes: (5, 'Welcome', 9, '7Learn') Tuple with nested tuples: ((0, 1, 2, 3), ('python', '7Learn')) Tuple with repetition: ('7Learn', '7Learn', '7Learn') Tuple with a loop ('7Learn',) (('7Learn',),) ((('7Learn',),),) (((('7Learn',),),),) ((((('7Learn',),),),),)
تاپلها تغییرناپذیر (Immutable) و به طور معمول، حاوی دنبالهای از عناصر ناهمگن (متفاوت) هستند که از طریق نمایه کردن یا بستهبندی (Unpacking) میتوان به آنها دسترسی پیدا کرد. لیستها بر خلاف تاپلها، قابل تغییر (Mutable) هستند و به طور معمول، عناصر آنها همگن (مشابه) است.
نکته: در روش بستهبندی تاپل، تعداد متغیرهای سمت چپ باید برابر با تعداد عناصر تاپل باشد.
#Accessing Tuple
#with Indexing
Tuple1 = tuple("7Learn")
print("\nFirst element of Tuple: ")
print(Tuple1[1])
#Tuple unpacking
Tuple1 = ("7Learn", "Python", "Molaei")
#This line unpack
#values of Tuple1
a, b, c = Tuple1
print("\nValues after unpacking: ")
print(a)
print(b)
print(c)
خروجی
First element of Tuple: L Values after unpacking: 7Learn Python Molaei
چسباندن یا اتصال تاپل (Concatenation of tuple) فرآیند پیوستن دو یا چند تاپل به هم است. با استفاده از عملگر حسابی "+" میتوان تاپلها را به هم متصل کرد؛ اما سایر عملگرهای حسابی در تاپل کاربردی ندارد. همیشه اتصال تاپلها از انتهای تاپل اصلی انجام میپذیرد.
نکته: فقط دادههای مشابه را میتوان با هم پیوند داد و اگر یک لیست را با یک تاپل ترکیب کنیم، باعث ایجاد خطا میشود.
# Concatenaton of tuples
Tuple1 = (0, 1, 2, 3)
Tuple2 = ('7Learn', 'Python', 'Molaei')
Tuple3 = Tuple1 + Tuple2
# Printing first Tuple
print("Tuple 1: ")
print(Tuple1)
# Printing Second Tuple
print("\nTuple2: ")
print(Tuple2)
# Printing Final Tuple
print("\nTuples after Concatenaton: ")
print(Tuple3)
خروجی
Tuple 1: (0, 1, 2, 3) Tuple2: ('7Learn', ' Python', ' Molaei') Tuples after Concatenaton: (0, 1, 2, 3, '7Learn', ' Python', ' Molaei')
برش زدن (Slicing) یک تاپل برای بیرون کشیدن محدودهی خاصی از آن یا برش عناصر فرعی آن انجام میپذیرد. همچنین برش زدن میتواند برای لیستها نیز انجام شود. نمایه کردن در یک لیست، فقط یک عنصر را بیرون میکشد در صورتی که برش زدن، اجازهی بیرون کشیدن مجموعهای از عناصر را میدهد.
نکته: میتوان برای به دست آوردن وارونهی توالی یک تاپل، از مقادیر منفی استفاده کرد.
# Slicing of a Tuple
# Slicing of a Tuple
# with Numbers
Tuple1 = tuple('7LEARN.COM')
# Removing First element
print("Removal of First Element: ")
print(Tuple1[1:])
# Reversing the Tuple
print("\nTuple after sequence of Element is reversed: ")
print(Tuple1[::-1])
# Printing elements of a Range
print("\nPrinting elements between Range 4-9: ")
print(Tuple1[4:9])
خروجی
Removal of First Element: ('L', 'E', 'A', 'R', 'N', '.', 'C', 'O', 'M') Tuple after sequence of Element is reversed: ('M', 'O', 'C', '.', 'N', 'R', 'A', 'E', 'L', '7') Printing elements between Range 4-9: ('R', 'N', '.', 'C', 'O')
به دلیل تغییرناپذیر بودن تاپلها، پایتون اجازهی حذف قسمتی از تاپل را نمیدهد و فقط با استفاده از متد ()del میتوان کل تاپل را حذف کرد.
نکته: چاپ کردن یک تاپل بعد از حذف با متد ()del، باعث ایجاد خطا میشود.
# Deleting a Tuple
Tuple1 = (0, 1, 2, 3, 4)
del Tuple1
print(Tuple1)
خروجی
Traceback (most recent call last): File “/home/efa50fd0709dec08434191f32275928a.py”, line 7, in print(Tuple1) NameError: name ‘Tuple1’ is not defined
برای کسب اطلاعات بیشتر در مورد تاپلها، میتوانید مستندات پایتون را مطالعه کنید.
مجموعه (Set) در پایتون، مجموعهای نامرتب از انواع داده است که قابل تکرار و قابل تغییر بوده و هیچ عضوی در آن تکراری نیست. ترتیب عناصر در یک مجموعه تعریف نشده است، هر چند ممکن است از عناصر مختلفی تشکیل شده باشد.
مهمترین مزیت مجموعه در پایتون نسبت به لیست، روش بسیار بهینهسازی شدهی آن، برای بررسی بودن یا نبودن عنصری خاص در مجموعه است.
مجموعهها را میتوان با استفاده از تابع ()set، با قرار دادن یک شی قابل تکرار در آن یا قرار دادن دنبالهای از عناصر داخل براکت {} که با ویرگول از هم جدا شدهاند، ایجاد کرد.
نکته: یک مجموعه نمیتواند عناصر قابل تغییر مانند لیست، مجموعه و یا دیکشنری را به عنوان عناصر خود داشته باشد.
# Python program to demonstrate
# Creation of Set in Python
# Creating a Set
set1 = set()
set2 = {5, 6, 9 , 3, 4, 5 , 3}
print("Intial blank Set: ")
print(set1)
print(set2)
# Creating a Set with
# the use of a String
set1 = set("7Learn.com")
print("\nSet with the use of String: ")
print(set1)
# Creating a Set with
# the use of Constructor
# (Using object to Store String)
String = '7Learn.com'
set1 = set(String)
print("\nSet with the use of an Object: " )
print(set1)
# Creating a Set with
# the use of a List
set1 = set(["7Learn", "Python", "7Learn"])
print("\nSet with the use of List: ")
print(set1)
خروجی
Intial blank Set: set() {3, 4, 5, 6, 9} Set with the use of String: {'o', '7', 'r', 'n', 'm', 'e', 'L', '.', 'c', 'a'} Set with the use of an Object: {'o', '7', 'r', 'n', 'm', 'e', 'L', '.', 'c', 'a'} Set with the use of List: {'7Learn', 'Python'}
یک مجموعه فقط عناصر غیرتکراری را در خود نگه میدارد، هر چند میتوان در زمان ایجاد مجموعه، عناصر تکراری را نیز به آن اضافه کرد. ترتیب عناصر در یک مجموعه، تعریفنشده و غیرقابلتغییر است. عناصر در مجموعه، میتوانند از هر نوع داده باشند و نیاز به یکسان بودن نوع دادهی عناصر نیست.
# Creating a Set with
# a List of Numbers
# (Having duplicate values)
set1 = set([1, 2, 4, 4, 3, 3, 3, 6, 5])
print("\nSet with the use of Numbers: ")
print(set1)
# Creating a Set with
# a mixed type of values
# (Having numbers and strings)
set1 = set([1, 2, '7Learn', 4, 'For', 6, '7Learn'])
print("\nSet with the use of Mixed Values")
print(set1)
خروجی
Set with the use of Numbers: {1, 2, 3, 4, 5, 6} Set with the use of Mixed Values {1, 2, 4, '7Learn', 6, 'For'}
برای کسب اطلاعات بیشتر در مورد مجموعهها، مستندات پایتون را مطالعه کنید.
دیکشنری (Dictionary) در پایتون، مجموعهای غیرمرتب از مقادیری داده است، که هر عنصر آن دارای یک کلید و یک مقدار میباشد. بر خلاف دیگر انواع داده که تنها یک مقدار واحد را به عنوان یک عنصر ذخیره میکنند، دیکشنری مقادیر را به صورت جفت، کلید:مقدار (key:value) ذخیره میکند. این کلید-مقدار در دیکشنری برای این طراحی شده تا آن را بهینهتر کند.
نکته: کلیدها در دیکشنری، اجازهی چندریختی (Polymorphism) را نمیدهند.
در پایتون، میتوان با قرار دادن توالی عناصر که با ویرگول از هم جدا شدهاند، در داخل یک براکت {}، یک دیکشنری ایجاد کرد. دیکشنری دارای یک عنصر جفتی بوده که یکی کلید (Key) و دیگری مقدار (Value) داده شده به آن کلید است. در دیکشنری، مقادیر میتوانند از هر نوع داده و حتی تکراری باشند، اما کلیدها باید تغییرناپذیر و غیرتکراری باشند.
# Creating a Dictionary
# with Integer Keys
Dict = {1: 'Python', 2: '7Learn', 3: '7Learn'}
print("\nDictionary with the use of Integer Keys: ")
print(Dict)
# Creating a Dictionary
# with Mixed keys
Dict = {'Name': '7Learn', 1: [1, 2, 3, 4]}
print("\nDictionary with the use of Mixed Keys: ")
print(Dict)
خروجی
Dictionary with the use of Integer Keys: {1: 'Python', 2: '7Learn', 3: '7Learn'} Dictionary with the use of Mixed Keys: {1: [1, 2, 3, 4], 'Name': '7Learn'}
در پایتون میتوان با استفاده از تابع ()dict و یا استفاده از براکت {} خالی، یک دیکشنری خالی ایجاد کرد.
# Creating an empty Dictionary
Dict = {}
print("Empty Dictionary: ")
print(Dict)
# Creating a Dictionary
# with dict() method
Dict = dict({1: '7Learn', 2: 'Python', 3:'Molaei'})
print("\nDictionary with the use of dict(): ")
print(Dict)
# Creating a Dictionary
# with each item as a Pair
Dict = dict([(1, '7Learn'), (2, 'Python')])
print("\nDictionary with each item as a pair: ")
print(Dict)
خروجی
Empty Dictionary: {} Dictionary with the use of dict(): {1: '7Learn', 2: 'Python', 3: 'Molaei'} Dictionary with each item as a pair: {1: '7Learn', 2: 'Python'}
# Creating a Nested Dictionary
# as shown in the below image
Dict = {1: 'Python', 2: 'Molaei',
3:{'A' : 'Welcome', 'B' : 'To', 'C' : '7Learn'}}
print(Dict)
خروجی
{1: 'Python', 2: 'Molaei', 3: {'A': 'Welcome', 'B': 'To', 'C': '7Learn'}}
در دیکشنری پایتون، اضافه کردن عنصر جدید به چندین روش مختلف امکانپذیر است. در هر زمان میتوان با تعریف یک مقدار به همراه یک کلید، عنصر جدیدی به دیکشنری اضافه کرد. به عنوان مثال:
Dict[Key] = ‘Value’
میتوان مقدار موجود در دیکشنری را با استفاده از متد ()update بهروزرسانی کرد. ضمن اینکه میتوان مقادیر کلید تودرتو را به یک دیکشنری موجود، اضافه کرد.
نکته: در زمان افزودن یک مقدار، اگر کلید وجود داشته باشد، مقدار آن بهروز میشود؛ در غیر این صورت، کلید جدیدی به همراه مقدار، به دیکشنری اضافه میشود.
# Creating an empty Dictionary
Dict = {}
print("Empty Dictionary: ")
print(Dict)
# Adding elements one at a time
Dict[0] = '7Learn'
Dict[2] = 'Python'
Dict[3] = 1
print("\nDictionary after adding 3 elements: ")
print(Dict)
# Adding set of values
# to a single Key
Dict['Value_set'] = 2, 3, 4
print("\nDictionary after adding 3 elements: ")
print(Dict)
# Updating existing Key's Value
Dict[2] = 'Welcome'
print("\nUpdated key value: ")
print(Dict)
# Adding Nested Key value to Dictionary
Dict[5] = {'Nested' :{'1' : 'Life', '2' : '7Learn'}}
print("\nAdding a Nested Key: ")
print(Dict)
خروجی
Empty Dictionary: {} Dictionary after adding 3 elements: {0: '7Learn', 2: 'Python', 3: 1} Dictionary after adding 3 elements: {0: '7Learn', 2: 'Python', 3: 1, 'Value_set': (2, 3, 4)} Updated key value: {0: '7Learn', 2: 'Welcome', 3: 1, 'Value_set': (2, 3, 4)} Adding a Nested Key: {0: '7Learn', 2: 'Welcome', 3: 1, 5: {'Nested': {'1': 'Life', '2': '7Learn'}}, 'Value_set': (2, 3, 4)}
برای دسترسی به آیتمهای یک دیکشنری، میتوان نام کلیدی آن را داخل [] نمایه کرد.
# Python program to demonstrate
# accessing a element from a Dictionary
# Creating a Dictionary
Dict = {1: '7Learn', 'name': 'Python', 3: 'Molaei'}
# accessing a element using key
print("Accessing a element using key:")
print(Dict['name'])
# accessing a element using key
print("Accessing a element using key:")
print(Dict[1])
خروجی
Accessing a element using key: Python Accessing a element using key: 7Learn
همچنین متدی به نام ()get وجود دارد که از آن برای دسترسی به عناصر دیکشنری نیز استفاده میشود.
# Creating a Dictionary
Dict = {1: '7Learn', 'name': 'Python', 3: 'Molaei'}
# accessing a element using get()
# method
print("Accessing a element using get:")
print(Dict.get(3))
خروجی
Accessing a element using get: Molaei
برای دسترسی به مقدار هر کلید در دیکشنری تودرتو از روش نمایه استفاده میشود.
# Creating a Dictionary
Dict = {'Dict1': {1: '7Learn'},
'Dict2': {'Name': 'Python'}}
# Accessing element using key
print(Dict['Dict1'])
print(Dict['Dict1'][1])
print(Dict['Dict2']['Name'])
خروجی
{1: '7Learn'} 7Learn Python
استفاده از کلمهی کلیدی del: در دیکشنری پایتون، با استفاده از کلمهی کلیدی del میتوان کلیدها را حذف کرد. با این کلمهی کلیدی، میتوان مقادیر خاصی از یک دیکشنری یا کل یک دیکشنری را حذف کرد. ضمن این که آیتمهای موجود در دیکشنری تودرتو را نیز میتوان حذف نمود به شرطی که کلید خاص و کلید تودرتو خاص نیز حذف شوند.
نکته: با del Dict کل دیکشنری حذف شده و چاپ آن پس از حذف، باعث ایجاد خطا میشود.
# Initial Dictionary
Dict = { 5 : 'Welcome', 6 : 'To', 7 : '7Learn',
'A' : {1 : '7Learn', 2 : 'Python', 3 : 'Molaei'},
'B' : {1 : '7Learn', 2 : 'Life'}}
print("Initial Dictionary: ")
print(Dict)
# Deleting a Key value
del Dict[6]
print("\nDeleting a specific key: ")
print(Dict)
# Deleting a Key from
# Nested Dictionary
del Dict['A'][2]
print("\nDeleting a key from Nested Dictionary: ")
print(Dict)
خروجی
Initial Dictionary: {'A': {1: '7Learn', 2: 'Python', 3: 'Molaei'}, 'B': {1: '7Learn', 2: 'Life'}, 5: 'Welcome', 6: 'To', 7: '7Learn'} Deleting a specific key: {'A': : {1: '7Learn', 2: 'Python', 3: 'Molaei'}, 'B': {1: '7Learn', 2: 'Life'}, 5: 'Welcome', 7: '7Learn'} Deleting a key from Nested Dictionary: {'A': {1: '7Learn', 3: 'Molaei'}, 'B': {1: '7Learn', 2: 'Life'}, 5: 'Welcome', 7: '7Learn'}
در دیکشنری، با متد ()pop میتوان مقدار کلید مشخصی را برگرداند و سپس آن را حذف کرد.
# Creating a Dictionary
Dict = {1: '7Learn', 'name': 'Python', 3: 'Molaei'}
# Deleting a key
# using pop() method
pop_ele = Dict.pop(1)
print('\nDictionary after deletion: ' + str(Dict))
print('Value associated to poped key is: ' + str(pop_ele))
خروجی
Dictionary after deletion: {3: 'Molaei', 'name': 'Python'} Value associated to poped key is: 7Learn
استفاده از متد ()popitem جفت عنصر مورد نظر (کلید و مقدار) را بازگردانده و بعد آنها را حذف میکند.
# Creating Dictionary
Dict = {1: '7Learn', 'name': 'Python', 3: 'Molaei'}
# Deleting an arbitrary key
# using popitem() function
pop_ele = Dict.popitem()
print("\nDictionary after deletion: " + str(Dict))
print("The arbitrary pair returned is: " + str(pop_ele))
خروجی
Dictionary after deletion: {3: 'Molaei', 'name': 'Python'} The arbitrary pair returned is: (1, '7Learn')
با استفاده از متد ()clear، میتوان تمام آیتمهای موجود در دیکشنری را بهیکباره حذف کرد.
# Creating a Dictionary
Dict = {1: '7Learn', 'name': 'Python', 3: 'Molaei'}
# Deleting entire Dictionary
Dict.clear()
print("\nDeleting Entire Dictionary: ")
print(Dict)
خروجی
Deleting Entire Dictionary: {}
در این آموزش، با سه نوع دادهی دیگر در پایتون آشنا شدید. ابتدا تاپل را معرفی کردیم و سپس نحوهی ایجاد یک تاپل را با مثال آموزش دادیم. بعد از بیان مباحثی مانند دسترسی به تاپل، چسباندن، برش زدن و حذف تاپلها به سراغ مجموعهها رفتیم و آن را به اختصار توضیح دادیم. در ادامه نیز، دیکشنریها را به صورت قابل قبولی برای شما آموزش دادیم. دیکشنری در پایتون، از نقاط قوت این زبان برنامه نویسی به شمار میآید، چرا که بسیاری از کارها را برای برنامهنویس سهل و آسان میکند. یکی دیگر از آموزشهای پایتون مقدماتی به پایان رسید، در قسمت بعدی با آموزش دستورات شرطی و حلقههای تکرار، این مجموعه از آموزشهای مقدماتی پایتون به پایان خود خواهد رسید و علاقهمندان به زبان برنامه نویسی پایتون میتوانند با شرکت در دورههای متخصص پایتون مجموعه سون لرن، به صورت حرفهای برنامه نویسی پایتون را ادامه دهند.
امیدوار هستیم که این مقاله برای شما مفید بوده باشد. شما میتوانید پرسشها و نظرات خود را با ما در میان بگذارید.