List Comprehension är ett praktiskt och snabbare sätt att skapa listor i Python med bara en enda kodrad. Det hjälper oss att skriva lättlästa for-slingor på en enda rad.
I Python är dictionary en datastruktur för att lagra data så att varje element i den lagrade datan är associerad med en nyckel. Med hjälp av en ordboksdatastruktur kan du mycket effektivt söka efter data med hjälp av nyckeln.
Den här idén om förståelse är inte bara unik för listor i Python. Ordböcker, en av de vanligaste datastrukturerna inom datavetenskap, kan också göra förståelse. Med dict comprehension eller dictionary comprehension kan man enkelt skapa ordböcker.
Håll dig i minnet att i Python definieras en lista med hakparenteser och en ordbok med parenteser {}. Idén som används i list comprehension överförs också till att definiera dict comprehension. Dict comprehension definieras med en liknande syntax, men med ett nyckel:värde-par i uttrycket.
- {key:value for i in list}
Låt oss se 5 enkla exempel på hur man kan använda Dict Comprehension för att skapa nya ordböcker på ett enkelt sätt.
Har lagt till ett sjätte exempel på Dict comprehension för att radera nycklar i en ordbok.
Dict Comprehension Exempel 1
Låt oss se ett snabbt exempel på att skapa en dict comprehension från en lista med siffror.
Här använder vi en lista med siffror och skapar en ordbok med strängvärdet av siffran som nyckel och siffran som värden.
# dict comprehension to create dict with numbers as values>{str(i):i for i in }{'1': 1, '3': 3, '2': 2, '5': 5, '4': 4}
Dictförståelse exempel 2
Låt oss säga att vi har en lista med frukter och vi kan använda dictförståelse för att skapa en ordbok med frukter, listelementen som nycklar och längden på varje sträng som värden.
# create list of fruits>fruits = # dict comprehension to create dict with fruit name as keys>{f:len(f) for f in fruits}{'cherry': 6, 'mango': 5, 'apple': 5, 'banana': 6}
Dict Comprehension Exempel 3
Låt oss skapa ett lexikon med dict comprehension så att listelement som nycklar och element med första bokstaven med versaler som värden.
>{f:f.capitalize() for f in fruits}{'cherry': 'Cherry', 'mango': 'Mango', 'apple': 'Apple', 'banana': 'Banana'}
Dict Comprehension Exempel 4
Låt oss använda enumerate-funktionen i dictionary comprehension. Om du inte har använt enumerate: enumerate kan ta något iterbart som indata och returnerar element och dess index.
Här använder vi enumerate-funktionen på listan för att skapa index och tupler av listelement och använder dem för att skapa en ordbok med dict comprehension. Vi skapar en ordbok med listans element som nycklar och elementens index som värden. Sådana ordböcker med elementindex är ofta användbara i en mängd olika scenarier.
# dict comprehension example using enumerate function>{f:i for i,f in enumerate(fruits)}{'cherry': 3, 'mango': 1, 'apple': 0, 'banana': 2}
Dict Comprehension Example 5
En annan användning av dict comprehension är att vända nyckel:värde i en befintlig ordbok. Ibland vill man kanske skapa en ny ordbok från en befintlig ordbok, så att rollen för nyckel:värde-paret i den första ordboken är omvänd i den nya ordboken. Vi kan använda Dict Comprehension och vända elementet till indexordboken till index till elementordboken.
# dict comprehension example to reverse key:value pair in a dictionary>f_dict = {f:i for i,f in enumerate(fruits)}>f_dict{'apple': 0, 'banana': 2, 'cherry': 3, 'mango': 1}# dict comprehension to reverse key:value pair in a dictionary>{v:k for k,v in f_dict.items()}{0: 'apple', 1: 'mango', 2: 'banana', 3: 'cherry'}
Vi har använt dictionaries’ items-funktionen för att hämta nyckel- och värdepar i en befintlig ordbok och skapat en ny ordbok där nycklarna i den ursprungliga ordboken är värden i den nya ordboken och tvärtom.
Dict Comprehension Exempel 6: Hur raderar man valda nycklar från ordboken med Dict Comprehension?
Säg att du har en ordbok och vill skapa en ny ordbok genom att ta bort vissa nyckel-värdepar. Vi kan använda Dict Comprehension för att ta bort valda nyckel-värdepar från en ordbok och skapa en ny ordbok.
Låt oss använda ordboken ”frukt” som vi skapade ovan.
fruits = f_d1 ={f:f.capitalize() for f in fruits}f_d1
Låt oss använda Diction Comprehension för att ta bort två nycklar, äpple och banan, och deras värden från ordboken frukt.
# keys to be removed>remove_this = {'apple','cherry'}# dict comprehension example to delete key:value pairs in a dictionary>{key:f_d1 for key in f_d1.keys() - remove_this}{'banana': 'Banana', 'mango': 'Mango'}
Vi har tagit bort nycklarna, äpple och körsbär, genom att helt enkelt använda dict keys-objektet med set-operationer och nu innehåller det nya lexikonet bara banan och mango.