در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

آموزش پایتون (Python) به زبان خیلی ساده قسمت 13 : دیکشنری ها

دیکشنری ها در زبان پایتون نوعی دیگر از لیست ها هستند، اما با یک تفاوت اساسی و آن تفاوت امکان تعیین کلید (key) برای هر یک از آیتم های لیست است که می توان بوسیله این کلید به آیتم های لیست به سرعت دسترسی داشت، یعنی شما مثل لیست ها از اندیس آیتم استفاده نمی کنید که باعث می شود نیازی به مرتب بودن لیست نباشد. معمولاً برای کلید دیکشنری ها از نوع string استفاده می کنند، اما می توان از کلیه نوع های immutable در پایتون برای کلید دیکشنری استفاده کرد مانند boolean، integer، tuple و ... دیکشنری ها muttable هستند، یعنی امکان تغییر مقادیر و همچنین افزودن و حذف کردن آیتم ها در دیکشنری وجود دارد. برای ایجاد دیکشنری ها از علامت ها {} استفاده می شود. بوسیله کد زیر یک دیکشنری خالی ایجاد می کنیم:

>>> mydict={}
>>> mydict
{}

اما همانطور که گفتیم می توان در دیکشنری یک یا چند کلید به همراه مقادیر مرتبط با کلید ها اضافه کرد، در کد زیر یک دیکشنری که کلید های آن از نوع integer و مقادیر آن از نوع string است اضافه می کنیم:

>>> students={
... 1:"Hossein Ahmadi",
... 2:"Mohammad Nasiri",
... 3:"Mehdi Adelifar",
... 4:"Jaffar Shohani"
... }
>>> students
{1: 'Hossein Ahmadi', 2: 'Mohammad Nasiri', 3: 'Mehdi Adelifar', 4: 'Jaffar Shohani'}

در کد بالا اعداد 1 تا 4 کلید های دیکشنری و رشته های روبروی هر کلید مقدار مربوط به آن کلید هستند، در ادامه می توانیم بوسیله کلید مورد به مقادیر هر کلید دسترسی داشته باشیم، برای اینکار کافیست مقدار کلید را بین [] بنویسیم:

>>> students[1]
'Hossein Ahmadi'
>>> students[4]
'Jaffar Shohani'

همانطور که در ابتدا نیز گفتیم کلید دیکشنری ها می توانند از هر نوع immutable ای انتخاب شوند:

>>> students={
... 'A':'Hossein Ahmadi',
... 'B':'Mohammad Nasiri',
... 'C':'Mehdi Adeli',
... 'D':'Jaffar Shohani'
... }
>>> students['A']
'Hossein Ahmadi'
>>> students['C']
'Mehdi Adeli'

برای تغییر مقدار یک آیتم نیز می توان از کلید و عملگر انتساب به صورت زیر استفاده کرد:

>>> students['C']
'Mehdi Adeli'
>>> students['C'] = 'Ali Moghaddam'
>>> students['C']
'Ali Moghaddam'

همچنین برای اضافه کردن یک مقدار کافیست یک کلید جدید را در زمان انتساب مشخص کنیم:

>>> students
{'A': 'Hossein Ahmadi', 'C': 'Ali Moghaddam', 'B': 'Mohammad Nasiri', 'D': 'Jaffar Shohani'}
>>> students['E']='Mehdi Adeli'
>>> students
{'A': 'Hossein Ahmadi', 'C': 'Ali Moghaddam', 'B': 'Mohammad Nasiri', 'E': 'Mehdi Adeli', 'D': 'Jaffar Shohani'}

بر میگردیم به مبحث تعریف دیکشنری ها، استفاده از {} ساده ترین روش ایجاد یک دیکشنری است، راهکار دیگری که می توان استفاده کرد استفاده از تابع dict است، بوسیله این تابع می توان یک لیست یا یک Tuple را به عنوان پارامتر ارسال کرد و از آن یک دیکشنری ساخت، فقط دقت کنید که آیتم های داخل لیست یا Tuple می بایست خود یک لیست یا Tuple و یا رشته باشند و تعداد آیتم های داخل هر لیست داخلی نیز 2 آیتم باشد. برای مثال، در کد زیر بوسیله تابع dict یک دیکشنری از روی یک لیست که هر آیتم آن یک لیست دیگر با دو آیتم می باشد ایجاد می کنیم:

>>> students_list=[['A','Hossein Ahmadi'],['B','Mohammad Nasiri']]
>>> students_dict=dict(students_list)
>>> students_dict
{'A': 'Hossein Ahmadi', 'B': 'Mohammad Nasiri'}
>>> students_dict['A']
'Hossein Ahmadi'

در ادامه به بررسی روش های مختلف استفاده از لیست و tuple ها برای ایجاد دیکشنری می پردازیم. روش اول که ترکیب لیست و لیست بود را در مثال بالا دیدیم. روش بعدی استفاده از حالت Tuple و Tuple هست، یعنی Tuple ای که هر یک از آیتم های آن یک Tuple هستند:

>>> students_list=(('A','Hossein Ahmadi'),('B','Mohammad Nasiri'))
>>> students_dict=dict(students_list)
>>> students_dict
{'A': 'Hossein Ahmadi', 'B': 'Mohammad Nasiri'}

روش بعدی ترکیب لیست و tuple است:

>>> students_list=[('A','Hossein Ahmadi'),('B','Mohammad Nasiri')]
>>> students_dict=dict(students_list)

روش سوم ترکیب tuple و لیست:

>>> students_list=(['A','Hossein Ahmadi'],['B','Mohammad Nasiri'])
>>> students_dict=dict(students_list)

برای استفاده از رشته ها به عنوان آیتم لیست یا tuple باید رشته مورد نظر تنها دو کاراکتر داشته باشد که کاراکتر اول به عنوان کلید و کاراکتر دوم به عنوان مقدار کلید شناخته می شود:

>>> chars=['ab','cd','ef','gh']
>>> dict(chars)
{'a': 'b', 'c': 'd', 'e': 'f', 'g': 'h'}

برای ادمه با تابع update آشنا می شویم که بوسیله آن می توان دو دیکشنری را با هم ترکیب کرد، کد زیر مقادیر dict2 را در dict1 اضافه می کند:

>>> dict1=dict(['ab','cd'])
>>> dict2=dict(['ef','gh'])
>>> dict1
{'a': 'b', 'c': 'd'}
>>> dict2
{'e': 'f', 'g': 'h'}
>>> dict1.update(dict2)
>>> dict1
{'a': 'b', 'c': 'd', 'e': 'f', 'g': 'h'}

بوسیله عبارت del نیز می توان مقدار داخل یک دیکشنری را حذف کرد:

>>> students={'A':'Hossein Ahmadi','B':'Mohammad Nasiri','C':'Reza Moghaddam'}
>>> students
{'A': 'Hossein Ahmadi', 'C': 'Reza Moghaddam', 'B': 'Mohammad Nasiri'}
>>> del students['C']
>>> students
{'A': 'Hossein Ahmadi', 'B': 'Mohammad Nasiri'}

همچنین برای پاک سازی کامل یک دیکشنری و حذف کلیه آیتم های آن از تابع clear به صورت زیر استفاده می کنیم:

>>> chars=dict(['ab','cd','ef'])
>>> chars
{'a': 'b', 'c': 'd', 'e': 'f'}
>>> chars.clear()
>>> chars
{}

اما فرض کنیم که می خواهیم تست کنیم که یک کلید در دیکشنری ما وجود دارد یا خیر، برای اینکار می توان از عبارت in به صورت زیر استفاده کرد که خروجی آن مقدار True یا False می باشد:

>>> students={'A':'Hossein Ahmadi','B':'Mohammad Nasiri','C':'Reza Moghaddam'}
>>> 'C' in students
True
>>> 'H' in students
False

همچنین برای بدست آوردن لیست کلیه کلیدهای داخل یک دیکشنری از تابع keys به صورت زیر استفاده می کنیم:

>>> students.keys()
['A', 'C', 'B']

و برای بدست آوردن کل مقادیر داخل دیکشنری تابع values را استفاده می کنیم:

>>> students.values()
['Hossein Ahmadi', 'Reza Moghaddam', 'Mohammad Nasiri']

تابع دیگری برای دیکشنری ها وجود دارد به نام items که خروجی آن یک لیست است که هر آیتم آن یک tuple بوده که مقدار اول آن کلید آیتم و مقدار دوم آن مقدار مربوط به کلید می باشد:

>>> students.items()
[('A', 'Hossein Ahmadi'), ('C', 'Reza Moghaddam'), ('B', 'Mohammad Nasiri')]

همانند لیست ها، در صورتی که یک دیکشنری را با عملگر انتساب در یک متغیر جدید قرار دهیم، کلیه تغییرات اعمال شده در متغیر اول در متغیر دوم نیز اعمال می شود که می توان از متد copy برای رفع این مشکل استفاده کرد. در قسمت بعدی آموزش زبان پایتون با مجموعه ها یا Sets آشنا می شویم. ITpro باشید

نویسنده: حسین احمدی
منبع: جزیره برنامه نویسی وب سایت توسینسو
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی است
#آموزش_برنامه_نویسی_با_پایتون #آموزش_پایتون #تفاوت_list_و_dictionary_در_پایتون #دیکشنری_ها_در_پایتون #تابع_dict_در_پایتون #کلیدهای_دیکشنری_در_پایتون
عنوان
1 آموزش پایتون (Python) به زبان خیلی ساده قسمت 1 : آشنایی با پایتون رایگان
2 آموزش پایتون (Python) به زبان خیلی ساده قسمت 2: نوشتن برنامه اول رایگان
3 آموزش پایتون (Python) به زبان خیلی ساده قسمت 3 : ساختار اسکریپت رایگان
4 آموزش پایتون (Python) به زبان خیلی ساده قسمت 4 : نوع داده ها رایگان
5 آموزش پایتون (Python) به زبان خیلی ساده قسمت 5 : تبدیل نوع داده رایگان
6 آموزش پایتون (Python) به زبان خیلی ساده قسمت 6 : عملگرها رایگان
7 آموزش پایتون (Python) به زبان خیلی ساده قسمت 7 : دستور شرطی IF رایگان
8 آموزش پایتون (Python) به زبان خیلی ساده قسمت 8 : حلقه ها رایگان
9 آموزش پایتون (Python) به زبان خیلی ساده قسمت 9 : توابع عددی و عدد رایگان
10 آموزش پایتون (Python) به زبان خیلی ساده قسمت 10 : رشته و توابع آن رایگان
11 آموزش پایتون (Python) به زبان خیلی ساده قسمت 11 : لیست ها رایگان
12 آموزش پایتون (Python) به زبان خیلی ساده قسمت 12 : Tuple ها رایگان
13 آموزش پایتون (Python) به زبان خیلی ساده قسمت 13 : دیکشنری ها رایگان
14 آموزش پایتون (Python) به زبان خیلی ساده قسمت 14 : مجموعه ها Sets رایگان
15 آموزش پایتون (Python) به زبان خیلی ساده قسمت 15 : Zip و پیمایش رایگان
16 آموزش پایتون (Python) به زبان خیلی ساده قسمت 16 : Comprehension رایگان
17 آموزش پایتون (Python) به زبان خیلی ساده قسمت 17 : توابع (Function رایگان
18 آموزش پایتون (Python) به زبان خیلی ساده قسمت 18 : Closure ها رایگان
19 آموزش پایتون (Python) به زبان خیلی ساده قسمت 19 : توابع بازگشتی رایگان
20 آموزش پایتون (Python) به زبان خیلی ساده قسمت 20 : ماژول ها رایگان
21 آموزش پایتون (Python) به زبان خیلی ساده قسمت 21 : پکیج ها رایگان
22 آموزش پایتون (Python) به زبان خیلی ساده قسمت 22 : شی گرایی رایگان
زمان و قیمت کل 0″ 0
3 نظر
محمدرضا جابری جابری

سلام مهندس . من میخوام که یک مقدار از کاربر گرفته بشه و در دیکشنری ذخیره بشه و بعد دکمه لاگین رو که کاربر زدم یوزری که از کاربر میگیره رو مطابق اون چیزی قرار بده که در دیکشنری موجود هست . مثل سیستم ثبت نام و ورود این کدی هست که من نوشتم و تا یک حدی درست کار میکنه : 

 

hh = 3
while hh>=3:
    one = input('Login or register  : ')
    if one == 'register':
        us = input('enter your username : ')
        pas = input('enter your password :  : ')
        em = input('enter your email : ')
        dict={
                'username':us,
                'pass':pas,
                'email':em
            }
        if dict['username'] != None and ['pass'] != None and ['email'] != None:
            print('the register is Successfully . you can login to the web :')
            lona = input('enter your username :')
            lopa = input('enter your password :')
            if lona == dict['username'] and lopa == dict['pass']:
                print(f'Welocme Boss {lona}')
                
        elif dict['username'] != lona and dict['pass'] != lopa:
            print('your username or password invalid !!!')

 

حسین احمدی

سلام، وقتتون بخیر

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

محمدرضا جابری جابری

سلام استاد این تکه کد چرا کار نمیکنه ؟

قسمت اخر کد بالا هست

 elif dict['username'] != lona and dict['pass'] != lopa:
            print('your username or password invalid !!!')

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره پاییزه می تونی امروز ارزونتر از فردا خرید کنی ....