a = list(range(10))

print(a)

"""
Explanation: Hausaufgaben Einstieg in Python - Lektion 2
1.Kreiere eine Liste aus Zahlen, die aus 10 Elementen besteht, und ordne sie der Variabel a zu.
End of explanation
"""


b = list(range(100))

print(b)

"""
Explanation: 2.Mache dasselbe mit einer Liste aus 100 Elementen und ordne sie der Variabel b zu.
End of explanation
"""


a.append("ich bin keine Zahl")
b.append("ich bin keine Zahl")

print(a,b)

"""
Explanation: 3.Füge beiden Listen folgenden String an: 'ich bin keine Zahl'
End of explanation
"""


a.pop()
b.pop()

print(a,b)

"""
Explanation: 4.Lösche diesen letzten Eintrag in der Liste wieder
End of explanation
"""


a = list(map(str, a))
b = list(map(str, b))

print(a,b)

for element_in_der_liste in a:
    print(str(element_in_der_liste))

leere_list = []
for element_in_der_list in a:
    neues_element = str(element_in_der_list)
    leere_list.append(neues_element)

leere_list

lange_leere_list = []
for x in b:
    neues_element = str(x)
    lange_leere_list.append(neues_element)

lange_leere_list

"""
Explanation: 5.Verwandle jede Zahl in den Listen a und b von int in str?
End of explanation
"""


b = list(map(int,b))

b[-10:]

b[89:]

b[89:95]

"""
Explanation: 6.Von der list b, zeige nur die letzten zehn Nummern an
End of explanation
"""


#welche "folgende Liste"?
#Ich erfinde einfach mal eine Liste, die in etwa zur Aufgabe 8. zu passen scheint.
lst = [101,1,15,150,1500,20,500,12000,2]

lst.sort()
lst[-2]

print(lst)

"""
Explanation: 7.Von der folgenden Liste, zeige den zweit grössten Wert an
End of explanation
"""


b = [23, 2345, 3, 234527, 3452345, 345, 3421, 12]

b

b_neue = []
for elem in b:
    if elem > 1000:
        pass
    elif elem > 100 and elem < 1000:
        b_neue.append(str(elem))
    else:
        elem = elem * 100
        b_neue.append(elem)

b_neue

"""
Explanation: 8.Multipliziere jede Nummer in dieser Liste, die kleiner ist als 100, mit 100; wenn die Nummern zwischen 100 und 1000 verwandle sie in eine String, und wenn sie grösser oder gleich 1000 ist, lösche sie.
End of explanation
"""


City = [{"Stadt": "Zürich", "Bevölkerung": 400000, "Kanton": "ZH"}, {"Stadt": "Bern", "Bevölkerung": 350000, "Kanton": "BE"}, {"Stadt": "Genf", "Bevölkerung": 310000, "Kanton": "GE"}, {"Stadt": "Basel", "Bevölkerung": 300000, "Kanton": "BS"}, {"Stadt": "Luzern", "Bevölkerung": 200000, "Kanton": "LU"}]

"""
Explanation: 9.Schreibe eine Dictionary-Liste der fünf grössten Schweizer Städte, ihrer Bevölkerung und dem jeweiligen Kanton.
End of explanation
"""


City[3]["Bevölkerung"]

"""
Explanation: 10.Zeige nur die Bevölkerung der Stadt Genf an
End of explanation
"""


for x in City:
    print(x)

x = {"Stadt": "Zürich", "Bevölkerung": 400000, "Kanton": "ZH"}
print(x["Bevölkerung"])


#"Human Style" megamüehsam
City[0]["Bevölkerung"] + City[1]["Bevölkerung"] + City[2]["Bevölkerung"] + City[3]["Bevölkerung"] + City[4]["Bevölkerung"]

result = 0
for x in City:
    result += x["Bevölkerung"]
# += ist ein Shortcut und heisst so viel wie mit sich selber addieren.
    
print(result)

"""
Explanation: 11.Drucke (print) das Total der Bevölkerungen aller Städte aus
End of explanation
"""


Gesamtbevölkerung = 8000000

for x in City:
# x steht hier für die Stadt. Genauer die Dictionary, welche alle Daten zu einer Stadt enthält (Bevölk., Kanton und Stadt)
    prozent = round((x["Bevölkerung"] /Gesamtbevölkerung) *100,1)
    print(x["Stadt"] + ": " + str(prozent))

x

"""
Explanation: 12.Rechne den Anteil der Bevölkerung der jeweiligen Städte an der Gesamtbevölkerung der Schweiz aus und "print" die Ergebnisse neben dem Städtenamen
End of explanation
"""


Lausanne = {"Bevölkerung": 90000, "Stadt": "Lausanne", "Kanton": "VD"}
Hombi = {"Bevölkerung": 8000, "Stadt": "Hombi", "Kanton": "ZH"}

City.append(Lausanne)
City.append(Hombi)

City

"""
Explanation: 13.Füge noch die Städte Winterthur und Luzern hinzu
End of explanation
"""


