Listen

  • Listen sind eine sequentielle, geordnete Sammlung von Werten, Zahlen oder strg oder boolean oder hashes etc. ['spass',[1,2,4], 3.14, [{1],[2],[3]] in eckigen Klammern
  • Listen erzeugen

    
    
    In [ ]:
    x = [4,2,6,3] #Erzeugt eine Liste mit Werten
    x1 = [4,2,6,3] #Erzeugt eine Liste mit den gleichen Werten
    y = list() # Erzeugt eine leere Liste
    y = [] #Erzeugt eine leere Liste
    z = ["11","22","33","a","b","c","d"] #erzeugt eine Liste mit strg Werten
    print(x)
    print(id(x))
    print(x1)
    print(id(x1))
    print(y)
    print(id(y))
    print(z)
    print(id(z))
    

    Hinzufügen von Objekten in Listen

    
    
    In [ ]:
    x=list()
    print(x)
    x.append('One') #Adds 'One' to the back of the empty list
    print(x)
    x.append('Two') #Adds 'Two' to the back of the list ['One']
    print(x)
    
    
    
    In [ ]:
    x.insert(0,'Half') #Inserts 'Half' at location 0. Items will shift to make roomw
    print(x)
    
    
    
    In [ ]:
    x=list()
    x.extend([1,2,3]) #Unpacks the list and adds each item to the back of the list
    print(x)
    

    Index und Teilstücke

    
    
    In [ ]:
    x=[1,7,2,5,3,5,67,32]
    print(len(x))
    print(x[3])
    print(x[2:5])
    print(x[-1])
    print(x[::-1])
    

    Entfernen von Objekten aus Listen

    
    
    In [ ]:
    x=[1,7,2,5,3,5,67,32]
    x.pop() #Entfernt das letzte Element aus der Liste
    print(x)
    x.pop(3) #Removes element at item 3 from a list
    print(x)
    x.remove(7) #Removes the first 7 from the list
    print(x)
    

    Anything you want to remove must be in the list or the location must be inside the list

    
    
    In [ ]:
    x.remove(20)
    

    Listen sind veränderbar [mutable]

    
    
    In [ ]:
    y=['a','b']
    x = [1,y,3]
    print(x)
    print(y)
    y[1] = 4
    print(y)
    
    
    
    In [ ]:
    print(x)
    
    
    
    In [ ]:
    x="Hello"
    print(x,id(x))
    x+=" You!"
    print(x,id(x)) #x is not the same object it was
    y=["Hello"]
    print(y,id(y))
    y+=["You!"] 
    print(y,id(y)) #y is still the same object. Lists are mutable. Strings are immutable
    
    
    
    In [ ]:
    def eggs(item,total=0):
        total+=item
        return total
    
    
    def spam(elem,some_list=[]):
        some_list.append(elem)
        return some_list
    
    
    
    In [ ]:
    print(eggs(1))
    print(eggs(2))
    
    print(spam(1))
    print(spam(2))
    

    Iteration

    Range iteration

    
    
    In [ ]:
    #The for loop creates a new variable (e.g., index below)
    #range(len(x)) generates values from 0 to len(x) 
    x=[1,7,2,5,3,5,67,32]
    for index in range(len(x)):
        print(x[index])
    
    
    
    In [ ]:
    list(range(len(x)))
    

    List element iteration

    
    
    In [15]:
    x=[1,7,2,5,3,5,67,32]
    for element in x: #The for draws elements - sequentially - from the list x and uses the variable "element" to store values
        print(element)
    
    
    
    
    1
    7
    2
    5
    3
    5
    67
    32
    

    Practice problem

    Write a function search_list that searches a list of tuple pairs and returns the value associated with the first element of the pair

    
    
    In [1]:
    def search_list(list_of_tuples,value):
        print(range(len(list_of_tuples)))
        for element in list_of_tuples:
            if element[0]==value:
                print(element[1])
        return 0
            
            #return(list_of_tuples[index])
            #Write the function here
    
    
    
    In [3]:
    prices = [('AAPL',96.43),('IONS',39.28),('GS',159.53),('AA',160.45)]
    ticker = 'AA'
    print(search_list(prices,ticker))
    
    
    
    
    [0, 1, 2, 3]
    160.45
    0
    

    Hashes in Listen ablegen

    
    
    In [16]:
    import hashlib
    m=list()
    x=[1,7,2,5,3,5,67,32,32,1,10,11,12,13,14,15,16] #Listen können gleiche Werte enthalten
    for element in x: #The for draws elements - sequentially - from the list x and uses the variable "element" to store values
        y=str(element) # der Variablen y wird der str Wert zugewiesen
        z=hashlib.sha256(y) # dauraus wird für z der sha256 Wert ermittelt
        print(z.hexdigest()) # der Wert wird in hexadezimal gedruckt
        m.append(z.hexdigest()) # der Wert wird der liste m angefügt
    print("Wir haben die Daten in die  Liste m gelegt:")
    print(m) # die Liste wird gedruckt
    
    
    
    
    6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b
    7902699be42c8a8e46fbbb4501726517e86b22c56a189f7625a6da49081b2451
    d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35
    ef2d127de37b942baad06145e54b0c619a1f22327b2ebbcfbec78f5564afe39d
    4e07408562bedb8b60ce05c1decfe3ad16b72230967de01f640b7e4729b49fce
    ef2d127de37b942baad06145e54b0c619a1f22327b2ebbcfbec78f5564afe39d
    49d180ecf56132819571bf39d9b7b342522a2ac6d23c1418d3338251bfe469c8
    e29c9c180c6279b0b02abd6a1801c7c04082cf486ec027aa13515e4f3884bb6b
    e29c9c180c6279b0b02abd6a1801c7c04082cf486ec027aa13515e4f3884bb6b
    6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b
    4a44dc15364204a80fe80e9039455cc1608281820fe2b24f1e5233ade6af1dd5
    4fc82b26aecb47d2868c4efbe3581732a3e7cbcc6c2efb32062c08170a05eeb8
    6b51d431df5d7f141cbececcf79edf3dd861c3b4069f0b11661a3eefacbba918
    3fdba35f04dc8c462986c992bcf875546257113072a909c162f7e470e581e278
    8527a891e224136950ff32ca212b45bc93f69fbb801c3b1ebedac52775f99e61
    e629fa6598d732768f7c726b4b621285f9c3b85303900aa912017db7617d8bdb
    b17ef6d19c7a5b1ee83b907c595526dcb1eb06db8227d650d5dda0a9f4ce8cd9
    Wir haben die Daten in die  Liste m gelegt
    ['6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b', '7902699be42c8a8e46fbbb4501726517e86b22c56a189f7625a6da49081b2451', 'd4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35', 'ef2d127de37b942baad06145e54b0c619a1f22327b2ebbcfbec78f5564afe39d', '4e07408562bedb8b60ce05c1decfe3ad16b72230967de01f640b7e4729b49fce', 'ef2d127de37b942baad06145e54b0c619a1f22327b2ebbcfbec78f5564afe39d', '49d180ecf56132819571bf39d9b7b342522a2ac6d23c1418d3338251bfe469c8', 'e29c9c180c6279b0b02abd6a1801c7c04082cf486ec027aa13515e4f3884bb6b', 'e29c9c180c6279b0b02abd6a1801c7c04082cf486ec027aa13515e4f3884bb6b', '6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b', '4a44dc15364204a80fe80e9039455cc1608281820fe2b24f1e5233ade6af1dd5', '4fc82b26aecb47d2868c4efbe3581732a3e7cbcc6c2efb32062c08170a05eeb8', '6b51d431df5d7f141cbececcf79edf3dd861c3b4069f0b11661a3eefacbba918', '3fdba35f04dc8c462986c992bcf875546257113072a909c162f7e470e581e278', '8527a891e224136950ff32ca212b45bc93f69fbb801c3b1ebedac52775f99e61', 'e629fa6598d732768f7c726b4b621285f9c3b85303900aa912017db7617d8bdb', 'b17ef6d19c7a5b1ee83b907c595526dcb1eb06db8227d650d5dda0a9f4ce8cd9']
    

    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'] #Error because GS is not in mktcaps
    
    
    
    In [ ]:
    mktcaps.get('GS') #Returns None because GS is not in mktcaps
    
    
    
    In [ ]:
    mktcaps['GS'] = 88.65 #Fügt GS to the dictionary
    print(mktcaps)
    
    
    
    In [ ]:
    del(mktcaps['GOOG']) #Removes GOOG from mktcaps
    print(mktcaps)
    
    
    
    In [ ]:
    mktcaps.keys() #Returns all the keys
    
    
    
    In [ ]:
    mktcaps.values() #Returns all the values
    
    
    
    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 [10]:
    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())
    for k in st.keys():
        print(st.['k'])
    
    
    
    
      File "<ipython-input-10-8d9744cc1bdb>", line 9
        print(st.['k'])
                 ^
    SyntaxError: invalid syntax
    

    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 [ ]: