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