Dictionaries

  • d={}
  • d.values()
  • d.keys()
  • d.items()
  • d.clear()
  • d.copy()
  • d.get(k,x)
  • k in d
  • d.setdefault(k[ ,x])
  • d1.update(d2)
  • 
    
    In [4]:
    mktcaps = {'AAPL':538.7,'GOOG':68.7,'IONS':4.6}# Dictionary wird initialisiert
    print(type(mktcaps))
    print(mktcaps)
    print(mktcaps.values())
    print(mktcaps.keys())
    print(mktcaps.items())
    c=mktcaps.items()
    print c[0]
    
    
    
    
    <type 'dict'>
    {'GOOG': 68.7, 'IONS': 4.6, 'AAPL': 538.7}
    [68.7, 4.6, 538.7]
    ['GOOG', 'IONS', 'AAPL']
    [('GOOG', 68.7), ('IONS', 4.6), ('AAPL', 538.7)]
    ('GOOG', 68.7)
    
    
    
    In [ ]:
    mktcaps['AAPL'] #Gibt den Wert zurück der mit dem Schlüssel "AAPL" verknüpft ist
    
    
    
    In [ ]:
    mktcaps['GS'] #Fehler weil GS nicht in mktcaps enthalten ist
    
    
    
    In [ ]:
    mktcaps.get('GS') #Ergibt keinen Wert, da GS nicht in mktcaps enthalten ist
    
    
    
    In [ ]:
    mktcaps['GS'] = 88.65 #Fügt GS in das dictionary ein
    print(mktcaps)
    
    
    
    In [ ]:
    del(mktcaps['GOOG']) #ENtfernt GOOG von mktcaps
    print(mktcaps)
    
    
    
    In [ ]:
    mktcaps.keys() #gibt alle keys zurück
    
    
    
    In [ ]:
    mktcaps.values() #gibt alle Werte zurück
    
    
    
    In [12]:
    import hashlib
    l=('AAA','BBB','CCC','DDD','EEE')
    print(l)
    print(len(l))
    hshdict={'AAA':hashlib.sha256('AAA)')}
    hshdict.values()
    v=hshdict['AAA']
    m=v.hexdigest()
    print(m)
    
    
    
    
    ('AAA', 'BBB', 'CCC', 'DDD', 'EEE')
    5
    5c97d37ef031ab20133e097f79ae227c1ccdfc97e47bc3b5fef49cbaee8c06dd
    

    Beispiel: Alter

    
    
    In [7]:
    alter = {'Peter':45,'Julia':23,'Mathias':36} #Erzeugen eines Dictionaries
    print(alter)
    
    
    
    
    {'Mathias': 36, 'Peter': 45, 'Julia': 23}
    
    
    
    In [13]:
    alter['Julia']=27 #Ändern des Alters
    alter['Monika']=33 #Hinzufügen von Monika - die Reihenfolge der Schlüssel spielt keine Rolle
    print(alter)
    if 'Monika' in alter:
        print (alter['Monika'])
    
    
    
    
    {'Mathias': 36, 'Monika': 33, 'Peter': 45, 'Julia': 27}
    33
    

    Beispiel: Temperaturen in Staedten

    
    
    In [2]:
    temperatur={'stuttgart':32.9,'muenchen':29.8,'hamburg':24.4}# Erzeugen eines dictionaries mit Temperaturen in verschiedenen Städten
    temperatur['koeln']=29.7 #hinzufuegen der temperatur in koeln
    print(temperatur) #ausgabe der temperaturen
    
    
    
    
    {'koeln': 29.7, 'stuttgart': 32.9, 'hamburg': 24.4, 'muenchen': 29.8}
    
    
    
    In [18]:
    for stadt in temperatur:
        print('Die Temperatur in %s ist %g °C' % (stadt,temperatur[stadt]))
    
    
    
    
    Die Temperatur in koeln ist 29.7 °C
    Die Temperatur in stuttgart ist 32.9 °C
    Die Temperatur in hamburg ist 24.4 °C
    Die Temperatur in muenchen ist 29.8 °C
    
    
    
    In [19]:
    if 'Berlin' in temperatur:
        print ('Berlin:', temperatur['Berlin'])
    else:
        print ('Keine Daten für Berlin gefunden')
    
    
    
    
    Keine Daten für Berlin gefunden
    
    
    
    In [20]:
    'stuttgart' in temperatur #überprüfen ob Schlüssel in temperatur enthalten ist
    
    
    
    
    Out[20]:
    True
    
    
    In [21]:
    temperatur.keys() #Ausgabe der Schlüssel im Dictionary
    
    
    
    
    Out[21]:
    ['koeln', 'stuttgart', 'hamburg', 'muenchen']
    
    
    In [22]:
    temperatur.values()#ausgabe der Werte im Dictionary
    
    
    
    
    Out[22]:
    [29.7, 32.9, 24.4, 29.8]
    
    
    In [23]:
    for stadt in sorted(temperatur):
        print(stadt)
    
    
    
    
    hamburg
    koeln
    muenchen
    stuttgart
    
    
    
    In [24]:
    temperatur_kopie=temperatur.copy() #erstellt eine KOpie des dictonaries
    print (temperatur_kopie)
    
    
    
    
    {'koeln': 29.7, 'stuttgart': 32.9, 'muenchen': 29.8, 'hamburg': 24.4}
    
    
    
    In [30]:
    temperatur2={'stuttgart':22.9,'muenchen':23.8,'hamburg':21.4} #ein 2-tes dictionary
    temperatur.update(temperatur2)
    for stadt in temperatur:
        print('Die Temperatur in %s ist %g °C' % (stadt,temperatur[stadt]))
    print('Anzahl enthaltene Staedte: %g'% len(temperatur))
    
    
    
    
    Die Temperatur in stuttgart ist 22.9 °C
    Die Temperatur in hamburg ist 21.4 °C
    Die Temperatur in koeln ist 29.7 °C
    Die Temperatur in muenchen ist 23.8 °C
    Anzahl enthaltene Staedte: 4
    
    
    
    In [3]:
    temperatur2={'stuttgart':22.9,'muenchen':23.8,'hamburg':21.4,'koeln':18.6,'frankfurt':20.6, 'weimar':18.8} #ein 2-tes dictionary
    temperatur.update(temperatur2)
    for stadt in temperatur:
        print('Die Temperatur in %s ist %g °C' % (stadt,temperatur[stadt]))
    print('Anzahl enthaltene Staedte: %g'% len(temperatur))
    
    
    
    
    Die Temperatur in muenchen ist 23.8 °C
    Die Temperatur in koeln ist 18.6 °C
    Die Temperatur in stuttgart ist 22.9 °C
    Die Temperatur in hamburg ist 21.4 °C
    Die Temperatur in frankfurt ist 20.6 °C
    Die Temperatur in weimar ist 18.8 °C
    Anzahl enthaltene Staedte: 6
    
    
    
    In [ ]:
    
    

    Beispiel Studenten - mit dictionary

    
    
    In [2]:
    st={}#Erzeugen des leeren dictionarys
    st['100100'] = {'Mathe':1.0, 'Bwl':2.5}
    st['100200'] = {'Mathe':2.3, 'Bwl':1.8}
    print(st.items())
    print(type(st))
    print(st.values())
    print(st.keys())
    
    
    
    
    [('100100', {'Bwl': 2.5, 'Mathe': 1.0}), ('100200', {'Bwl': 1.8, 'Mathe': 2.3})]
    <type 'dict'>
    [{'Bwl': 2.5, 'Mathe': 1.0}, {'Bwl': 1.8, 'Mathe': 2.3}]
    ['100100', '100200']
    

    Schrittweiser Aufbau eines Studentenverezichnisses

    
    
    In [12]:
    def stud_verz():
        stud={}#erzeugen eines leeren dictionaries
        student=input('Matrikel-Nr als string eingeben:')
        while student:
            Mathe = input('Mathe Note eingeben:')
            Bwl = input('Bwl Note eingeben:')
            stud[student]={"Mathematik":Mathe,"BWL":Bwl}
            student=input('Matrikel-Nr als string eingeben:')
        return stud
    
    print (stud_verz())
    
    
    
    
    Matrikel-Nr als string eingeben:'100100'
    Mathe Note eingeben:1.2
    Bwl Note eingeben:2.4
    Matrikel-Nr als string eingeben:''
    {'100100': {'Mathematik': 1.2, 'BWL': 2.4}}
    

    Ein Dictionary aus anderen zusammensetzen

  • d2.update(d1)
  • 
    
    In [13]:
    d1={'hans':1.8,'peter':1.73,'rainer':1.74}
    d2={'petra':1.8,'hannes':1.73,'rainer':1.78}
    d1.update(d2)
    print(d1)
    
    
    
    
    {'rainer': 1.78, 'hannes': 1.73, 'hans': 1.8, 'peter': 1.73, 'petra': 1.8}
    

    Datenzugriff in einem dictionary

    
    
    In [21]:
    deutsch = {'key':['Schluessel','Taste'],'slice':['Scheibe','Schnitte','Stueck'],'value':['Wert']}
    print(deutsch)
    ######Abfangen von Abfragefehlern
    def uebersetze(wort,d):
        if wort in d:
            return d[wort]
        else:
            return 'unbekannt'
    
    print(uebersetze('slice',deutsch))
    uebersetze('search',deutsch)
    
    
    
    
    {'slice': ['Scheibe', 'Schnitte', 'Stueck'], 'value': ['Wert'], 'key': ['Schluessel', 'Taste']}
    ['Scheibe', 'Schnitte', 'Stueck']
    
    Out[21]:
    'unbekannt'

    Vokabeltrainer entwickeln

    
    
    In [ ]:
    #Vokabeltrainer entwickeln
    import random
    #Definition der Funktionen
    def dict_laden(pfad):
        d={}
        try:
            datei = open(pfad)
            liste = datei.readlines()
            for eintrag in liste:
                l_eintrag = eintrag.split()
                d[l_eintrag[0]]=l_eintrag[1:]
            datei.close()
        except:
            pass
        return d
    
    #def aufgabe(d):
        zufall = random.randint(0, len(d.keys())-1)
        vokabel = list(d.keys())[zufall]
        #print(vokabel +'?')
    #Datei liegt auf dem Pfad
    #c:\\Benutzer\\ramon\\Dokumente\\Python Scripts\\python-edx-07-07-17\\woerterbuch.txt'
    #woerterbuch liste von einträgen mit leerzeichen getrennt
    
    d={}
    datei=open('woerterbuch.txt')
    liste = datei.readlines()
    print(liste)
    for eintrag in liste:
                l_eintrag = eintrag.split()#trennung an leerzeichen
                #print(l_eintrag[0])
                #print(l_eintrag[1])
                d[l_eintrag[0]]=l_eintrag[1:]
    datei.close()
    print(d)
    zufall = random.randint(0, len(d.keys())-1)
    vokabel = list(d.keys())[zufall]
    print(vokabel+' ?') 
    antwort=input()
    
    
    
    In [ ]:
    
    
    
    
    In [ ]: