Щоб обчислити довжину словника, ми можемо використати вбудований у Python метод len(). Метод len() повертає кількість ключів у a Словник Python .
Синтаксис Python Dict len().
Синтаксис: len (Dict)
Повернення: Він повертає ціле число, яке є довжиною рядка.
Name:Steve Age:30 Designation:Programmer>
Базовий приклад знаходження довжини словника
Python3
dict1>=>{>'Name'>:>'Steve'>,>'Age'>:>30>,>'Designation'>:>'Programmer'>}> print>(>'Dictionary:'>, dict1)> print>(>'Length of dictionary:'>,>len>(dict1))> |
>
>
Вихід:
Команди sql ddl
Dictionary: {'Name': 'Steve', 'Age': 30, 'Designation': 'Programmer'} Length of dictionary: 3> Пошук довжини вкладеного словника
Зверніть увагу на такі деталі про людину:
Name:Steve Age:30 Designation:Programmer address: Street:Brigade Road City:Bangalore Country:India>
Проблема під час спроби знайти довжину вкладеного словника:
Python3
# A nested dictionary> dict2>=> {># outer dictionary> >'Name'>:>'Steve'>,> >'Age'>:>30>,> >'Designation'>:>'Programmer'>,> >'address'>: {># inner dictionary> >'Street'>:>'Brigade Road'>,> >'City'>:>'Bangalore'>,> >'Country'>:>'India'> >}> }> print>(>'len() method :'>,>len>(dict2))> print>(>'len() method with keys() :'>,>len>(dict2.keys()))> print>(>'len() method with values():'>,>len>(dict2.values()))> |
javascript сон
>
>
Вихід:
метод len() із keys(): 4
метод len() зі значеннями(): 4
Тут, який би метод ви не застосували, ви отримаєте лише «4» як результат. Але фактична кількість записів – «7». Ключами є ім’я, вік, посада, адреса, вулиця, місто та країна. Метод розглядає зовнішній словник, який є значенням для одного з ключів, як єдине значення.
Щоб подолати цю проблему, нам потрібно явно додати довжину внутрішнього словника до зовнішнього. Його можна закодувати, як наведено нижче:
Python3
# A nested dictionary> dict2>=>{> >'Name'>:>'Steve'>,> >'Age'>:>30>,> >'Designation'>:>'Programmer'>,> >'address'>:> >{> >'Street'>:>'Brigade Road'>,> >'City'>:>'Bangalore'>,> >'Country'>:>'India'> >}> >}> # total length = length of outer dict +> # length of inner dict> length>=> len>(dict2)>+>len>(dict2[>'address'>])> print>(>'The length of the nested dictionary is:'>, length)> |
>
>
Вихід:
The length of the nested dictionary is: 7>
Тепер працює нормально!!! Однак чи можна явно запрограмувати щоразу додавати довжину внутрішніх словників? Що робити, якщо ми не знаємо заздалегідь, скільки існує внутрішніх словників? Тепер розглянемо наступну деталь:
Name: first name:Steve last name:Jobs Age:30 Designation:Programmer address: Street:Brigade Road City:Bangalore Country:India>
Тут ми маємо два внутрішніх словника. Це не оптимізований спосіб явно додавати довжину внутрішніх словників кожного разу. Ми можемо вирішити цю проблему, поєднавши isinstance() з методом len(). Ідея полягає в тому, щоб спочатку зберегти довжину всього словника в змінній (скажи тут «довжина») . Потім перегляньте всі значення () словника та перевірте, чи є він екземпляром dict. Якщо «Правда» потім визначається довжина цього внутрішнього словника та додається до змінної довжина . Таким чином можна визначити загальну довжину вкладеного словника.
Приклад 1: Динамічне визначення довжини вкладеного словника за допомогою циклу for:
Коли ми маємо більше ключів у словнику, значення якого знову є словниками. Потім нам потрібно перевірити тип значення кожного ключа, якщо це словник, тоді ми використовуємо len() для значення та додаємо значення до довжини зовнішнього словника.
як генерувати випадкове число в java
Python3
# nested dictionary> dict2>=>{> >'Name'>:> >{> >'first_name'>:>'Steve'>,> >'Last_name'>:>'Jobs'> >},> >'Age'>:>30>,> >'Designation'>:>'Programmer'>,> >'address'>:> >{> >'Street'>:>'Rockins Road'>,> >'City'>:>'Bangalore'>,> >'Country'>:>'India'> >}> >}> # storing the outer dictionary length> length>=> len>(dict2)> # iterating to find the length> # of all inner dictionaries> for> i>in> dict2.values():> ># checking whether the value is a dictionary> >if> isinstance>(i,>dict>):> >length>+>=> len>(i)> > print>(>'The length of the dictionary is'>, length)> |
>
>
Вихід:
The length of the dictionary is 9>
Примітка: Цей підхід працюватиме лише тоді, коли вкладеність словників становить лише 2 рівні.
Якщо словник додатково вкладений, як показано нижче:
Name: first name:Steve last name:Jobs Age:30 Designation:Programmer address: Street: St_number:4 St_name:Brigade Road City:Bangalore Country:India>
Приклад 2. Використання рекурсії для визначення довжини вкладеного словника:
Тут ми використали рекурсивну функцію count_nested_len() для підрахунку довжини кожного словника, ми повторюємо ключі словників, як тільки значення є словником, ми повторно використовуємо цей словник.
Python3
# nested dictionary> dict2>=>{> >'Name'>:> >{> >'first_name'>:>'Steve'>,> >'Last_name'>:>'Jobs'> >},> >'Age'>:>30>,> >'Designation'>:>'Programmer'>,> >'address'>:> >{> >'Street'>:> >{> >'st_number'>:>4>,> >'st_name'>:>'Rockins Road'> >},> >'City'>:>'Bangalore'>,> >'Country'>:>'India'> >}> >}> # we use recursive function to count> # length of nested dictionaries> def> count_nested_len(d):> >length>=> len>(d)> >for> key, value>in> d.items():> >if> isinstance>(value,>dict>):> >length>+>=> count_nested_len(value)> >return> length> print>(>'Nested dictionary length:'>,> >count_nested_len(dict2))> |
>
>
Вихід:
Nested dictionary length: 11>
Підхід 3: Використання словникового розуміння
Python3
arraylist і linkedlist
# вкладений словник
dict2 ={
«Ім’я»:
{
'first_name':'Стів',
«Прізвище»: «Вакансії»
},
«Вік»: 30,
«Позначення»: «Програміст»,
«адреса»:
{
«Вулиця»:
{
‘st_number’: 4,
‘st_name’:’Рокінс-роуд’
},
«Місто»: «Бангалор»,
«Країна»: «Індія»
}
}
# Використання розуміння словника для визначення довжини вкладеного словника
length = len({k: v для k, v у dict2.items()})
print(Довжина словника становить, довжина)
#Цей код надав Едула Віней Кумар Редді
МЕТОД 4: Використання виразу генератора з функцією sum().
ПІДХІД:
Вираз генератора використовується для створення послідовності одиниць, де кожна 1 відповідає ключу в словнику. Потім функція sum() використовується для додавання одиниць, що дає довжину словника.
АЛГОРИТМ:
недоліки онлайн-банкінгу
1. Створіть вираз-генератор, який генерує послідовність одиниць для кожного ключа в словнику.
2. Використовуйте функцію sum(), щоб додати одиниці в послідовності.
3. Повертає суму, яка представляє довжину словника.
Python3
dict1>=> {>'Name'>:>'Steve'>,>'Age'>:>30>,>'Designation'>:>'Programmer'>}> length>=> sum>(>1> for> key>in> dict1)> print>(length)> |
>
>Вихід
3>
Часова складність цього підходу становить O(n), де n – кількість ключів у словнику.
Просторова складність цього підходу становить O(1)