logo

Uzyskaj długość słownika w Pythonie

Aby obliczyć długość słownika, możemy użyć wbudowanej w Pythona metody len(). Metoda len() zwraca liczbę kluczy w a Słownik Pythona .

Składnia Python Dict len().

Składnia: len (dykt)



Powrót: Zwraca liczbę całkowitą będącą długością ciągu.

Name:Steve Age:30 Designation:Programmer>

Podstawowy przykład wyznaczania długości słownika

Python3








dict1>=>{>'Name'>:>'Steve'>,>'Age'>:>30>,>'Designation'>:>'Programmer'>}> print>(>'Dictionary:'>, dict1)> print>(>'Length of dictionary:'>,>len>(dict1))>

>

>

Wyjście:

strsep c
Dictionary: {'Name': 'Steve', 'Age': 30, 'Designation': 'Programmer'} Length of dictionary: 3>

Znajdowanie długości zagnieżdżonego słownika

Rozważ następujące szczegóły dotyczące danej osoby:

Name:Steve Age:30 Designation:Programmer address: Street:Brigade Road City:Bangalore Country:India>

Problem podczas próby znalezienia długości zagnieżdżonego słownika:

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()))>

>

>

Wyjście:
Metoda len() z kluczami() : 4
metoda len() z wartościami(): 4

Tutaj, niezależnie od metody, którą zastosujesz, jako wynik otrzymasz tylko „4”. Ale rzeczywista liczba wpisów to „7”. Klucze to imię i nazwisko, wiek, oznaczenie, adres, ulica, miasto i kraj. Metoda traktuje słownik zewnętrzny będący wartością jednego z kluczy jako pojedynczą wartość.

Aby przezwyciężyć ten problem, musimy jawnie dodać długość słownika wewnętrznego do słownika zewnętrznego. Można go zakodować w sposób podany poniżej:

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)>

wymiana js

>

>

Wyjście:

The length of the nested dictionary is: 7>

Teraz działa dobrze!!! Czy jednak możliwe jest jawne zaprogramowanie za każdym razem dodawania długości słowników wewnętrznych? A co jeśli nie wiemy wcześniej, ile jest słowników wewnętrznych? Teraz rozważ następujący szczegół:

Name: first name:Steve last name:Jobs Age:30 Designation:Programmer address: Street:Brigade Road City:Bangalore Country:India>

Tutaj mamy dwa wewnętrzne słowniki. Nie jest to zoptymalizowany sposób, aby za każdym razem jawnie dodawać długość wewnętrznych słowników. Możemy rozwiązać ten problem, łącząc metodę isinstance() z metodą len(). Pomysł polega na tym, aby najpierw zapisać długość całego słownika w zmiennej (powiedz tutaj „długość”) . Następnie wykonaj iterację po wszystkich wartościach() słownika i sprawdź, czy jest to instancja dict. Jeśli 'PRAWDA' następnie zostaje znaleziona długość tego wewnętrznego słownika i dodana do zmiennej długość . W ten sposób można było znaleźć całkowitą długość zagnieżdżonego słownika.

Przykład 1: Dynamiczne znajdowanie długości zagnieżdżonego słownika przy użyciu pętli for:

Kiedy w słowniku mamy więcej kluczy, których wartości znów są słownikami. Następnie musimy sprawdzić, czy jest to typ wartości każdego klucza, czy jest to słownik, następnie używamy funkcji len() na wartości i dodajemy wartość do długości zewnętrznego słownika.

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)>

>

warunek Java podczas

>

Wyjście:

The length of the dictionary is 9>

Notatka: To podejście będzie działać tylko wtedy, gdy zagnieżdżenie słowników obejmuje tylko do 2 poziomów.

Jeśli słownik jest bardziej głęboko zagnieżdżony, jak poniżej:

Name: first name:Steve last name:Jobs Age:30 Designation:Programmer address: Street: St_number:4 St_name:Brigade Road City:Bangalore Country:India>

Przykład 2: Użycie rekurencji do znalezienia długości zagnieżdżonego słownika:

Tutaj użyliśmy funkcji rekurencyjnej count_nested_len() do zliczenia długości każdego słownika, iterujemy po klawiszach słowników, gdy tylko wartość jest słownikiem, używamy tego słownika.

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))>

>

>

Wyjście:

Nested dictionary length: 11>

Podejście 3: Korzystanie ze zrozumienia słownika

Python3

# zagnieżdżony słownik
dykt2 ={
'Nazwa':
{
„imię”: „Steve”,
„Nazwisko”: „Praca”
},
„Wiek”: 30,
„Oznaczenie”: „Programista”,
'adres':
{
'Ulica':
{
„st_number”:4,
„st_name”: „Rockins Road”
},
„Miasto”: „Bangalore”,
„Kraj”: „Indie”
}
}

# Używanie rozumienia słownika do znajdowania długości zagnieżdżonego słownika
długość = len({k: v dla k, v w dict2.items()})

print(Długość słownika to długość)
#Ten kod został napisany przez Edulę Vinay Kumar Reddy

METODA 4: Użycie wyrażenia generatora z funkcją sum().

ZBLIŻAĆ SIĘ:

Wyrażenie generatora służy do tworzenia sekwencji jedynek, gdzie każda jedynka odpowiada kluczowi w słowniku. Następnie używana jest funkcja sum() do dodawania jedynek, co daje długość słownika.

ALGORYTM:

1. Utwórz wyrażenie generatora, które generuje sekwencję jedynek dla każdego klucza w słowniku.
2. Użyj funkcji sum(), aby dodać jedyneki w sekwencji.
3.Zwróć sumę reprezentującą długość słownika.

kod Fibonacciego w Javie

Python3




dict1>=> {>'Name'>:>'Steve'>,>'Age'>:>30>,>'Designation'>:>'Programmer'>}> length>=> sum>(>1> for> key>in> dict1)> print>(length)>

>

>

Wyjście

3>

Złożoność czasowa tego podejścia wynosi O(n), gdzie n jest liczbą kluczy w słowniku.

Złożoność przestrzenna tego podejścia wynosi O (1)