Python. Вбудовані функції та операції обробки словників




Вбудовані функції та операції обробки словників


Зміст


Пошук на інших ресурсах:

1. Вбудована функція len(). Кількість елементів у списку

Вбудована функція len() повертає кількість елементів у заданому словнику. Згідно з документацією Python загальна форма використання функції наступна

count = len(D)

де

  • D – заданий словник;
  • count – шукана кількість елементів (цілочисельне значення).

Приклад.

# Функція len() - отримати кількість елементів у словнику
# Приклад 1
Months = { 1:'Jan', 2:'Feb', 3:'Mar', 4:'Apr',
           5:'May', 6:'Jun', 7:'Jul', 8:'Aug',
           9:'Sep', 10:'Oct', 11:'Nov', 12:'Dec' }
count = len(Months) # count = 12

# Приклад 2. Випадок з вкладеними словниками
Position = { 'Manager': { 'Director',
                          'Deputy Director' },
             'Teacher': { 'Specialist',
                          'Methodist',
                          'Senior Lecturer' },
             'Staff': { 'Cleaner',
                        'Porter',
                        'Watchman' } }

count1 = len(Position) # count1 = 3
count2 = len(Position['Manager']) # count2 = 2
count3 = len(Position['Staff']) # count3 = 3

 

2. Доступ до елементу словника за його ключем D[key]

З допомогою операції [] можна отримати доступ до значення, якщо відомо ключ за яким це значення записано. Операція доступу [] дозволяє як читати, так і записувати значення у словнику.

Згідно з документацією Python загальна форма використання операції [] для читання значення наступна:

item = D[key]

тут

  • D – заданий словник;
  • key – ключ, на основі якого здійснюється пошук елементу item у словнику. Якщо ключа key немає у словнику, то генерується виключення KeyError;
  • item – елемент, що отримується за ключем key.

Якщо у словник потрібно записати або додати значення item за ключем key, то операція [] має наступну форму використання

D[key] = item

При запису можливі дві ситуації:

  • ключ key є в словнику. У цьому випадку значення item замінює попереднє значення;
  • ключа key немає в словнику. У цьому випадку до словника додається нова пара key:item.

Приклад.

# Операція [] - доступ до елементів словника за ключем

# Приклад 1

# Заданий словник
WorkDays = { 1:'Mon', 2:'Tue' }

# Зчитати елемент
item = WorkDays[2] # item = 'Tue'

# Замість 'Tue' записати 'Sat'
WorkDays[2] = 'Sat' # WorkDays = {1: 'Mon', 2: 'Sat'}

# Додати нову пару (6:'Sun')
WorkDays[6] = 'Sun' # WorkDays = {1: 'Mon', 2: 'Sat', 6: 'Sun'}

# Приклад 2. Випадок з вкладеними словниками
SubCat1 = { 1:'A', 2:'B', 3:'C' }
SubCat2 = { 4:'D', 5:'E' }
Category = { 'High':SubCat1,
'Low' :SubCat2 }

# Зчитати елемент
item = Category['Low'] # item = {4: 'D', 5: 'E'}
item2 = Category['Low'][4] # item2 = 'D'

# Додати елемент до словника
Category['Middle'] = { 6:'J', 7:'K' }

# Змінити елемент у словнику
Category['High'][3] = 'F' # Category = {'High': {1:'A', 2:'B', 3:'F'},
#             'Low': {4:'D', 5:'E'},
#             'Middle': {6:'J', 7:'K'}}

 



3. Операція del. Видалення елементу за ключем

Операція del призначена для видалення елементу зі словника на основі заданого ключа key. Загальна форма використання операції наступна

del D[key]

де

  • D – заданий словник;
  • key – ключ у словнику, елемент якого потрібно видалити.

Якщо вказати неіснуючий ключ key, то буде згенеровано виключення KeyError.

Приклад.

# Операція del - видалення елементу зі словника
# Заданий словник
Salary = { 'Director': 120800.0,
           'Secretary': 101150.25,
           'Locksmith': 188200.00 }

# Видалити елемент за ключем 'Secretary'
del Salary['Secretary'] # Salary = {'Director': 120800.0,
#           'Locksmith': 188200.0}

# Спроба видалити неіснуючий ключ
# del Salary[5] - так не можна, генерується виключення KeyError: 5
# del Salary['None'] - так само заборонено

 

4. Операція in. Визначення наявності ключа в словнику

Щоб визначити, чи існує заданий ключ в словнику, у Python використовується операція in, загальна форма використання якої наступна

f_is = key in D

де

  • D – вихідний словник;
  • key – ключ, наявність якого у словнику D потрібно визначити;
  • f_is – результат логічного типу. Якщо f_is=True, то ключ key є наявний у словнику. Якщо f_is=False, то ключа немає у словнику.

Приклад. У прикладі використовується операція in для того, щоб визначити чи є в словнику Salary ключ, який потрібно видалити. Операція використовується в умовному операторі if.

# Операція in - визначення наявності ключа в словнику
# Заданий словник
Salary = { 'Director': 120800.0,
           'Secretary': 101150.25,
           'Locksmith': 188200.00 }

# Видалити елемент за ключем 'Secretary' з перевіркою
key = 'Secretary'
if key in Salary:
    del Salary['Secretary'] # Salary =   {'Director': 120800.0,
    #           'Locksmith': 188200.0}

# Спроба видалити неіснуючий ключ
# якщо ключа немає, то виключення KeyError не генерується
key2 = 5
if key2 in Salary:
    del Salary[key2]

 

5. Операція not in. Визначення відсутності ключа в словнику

Операція not in повертає результат завжди протилежний операції in. Загальна форма операції not in наступна:

f_is = key not in D

де

  • D – вихідний словник;
  • key – ключ, наявність якого у словнику D потрібно визначити;
  • f_is – результат логічного типу. Якщо f_is = True, то ключа key немає в словнику D. Якщо f_is = False, то ключ key є присутній в словнику D.

Приклад. У прикладі демонструється використання операції not in для визначення того, чи присутній у словнику ключ, який був введений з клавіатури.

# Операція not in - визначення відсутності ключа в словнику
# Формування словника слів з їх числовим еквівалентом
# 1. Сформувати пустий словник
Words = dict() # Words = {}

# 2. Ввести кількість слів у словнику
count = int(input("Number of words: "))

# 3. Цикл додавання слів
i=0
while i<count:
    print("Input word:")
    wrd = str(input("Text:"))
    value = int(input("Value: "))

    # Якщо ключа wrd немає у словнику, то додати пару [key:value]
    if wrd not in Words:
        Words[wrd] = value
    i=i+1

# Вивести сформований словник
print("\nYou enter the following information:")
print(Words)

Результат роботи програми:

Number of words: 3
Input word:
Text:wrd1
Value: 100
Input word:
Text:wrd2
Value: 200
Input word:
Text:wrd3
Value: 250
You enter the following information:
{'wrd1': 100, 'wrd2': 200, 'wrd3': 250}

 


Зв’язані теми