Woche 05#
person_hobbies = { "Tina": [ "Tanzen", "Schwimmen" ],
"Tom": [ "Tanzen", "Lesen" ] }
person_hobbies["Tina"]
['Tanzen', 'Schwimmen']
Zielvorstellung:
hobby_personen = { "Tanzen": [ "Tina", "Tom"],
"Schwimmen" : [ "Tina" ],
"Lesen": [ "Tom" ] }
Welche Hobbies gibt es?#
Grundstruktur Listenbearbeitung#
ah = [] ## ah ... alle Hobbies
for person, hob_liste in person_hobbies.items():
print( f"{person}: {hob_liste}" )
ah.extend(hob_liste)
ah
Tina: ['Tanzen', 'Schwimmen']
Tom: ['Tanzen', 'Lesen']
['Tanzen', 'Schwimmen', 'Tanzen', 'Lesen']
set(ah)
{'Lesen', 'Schwimmen', 'Tanzen'}
mit Sets#
ahs = set() # alle hobbies set
for person, hob_liste in person_hobbies.items():
print( f"{person}: {hob_liste}, set: {set(hob_liste)}" )
ahs = ahs.union( set(hob_liste) )
ahs
Tina: ['Tanzen', 'Schwimmen'], set: {'Tanzen', 'Schwimmen'}
Tom: ['Tanzen', 'Lesen'], set: {'Lesen', 'Tanzen'}
{'Lesen', 'Schwimmen', 'Tanzen'}
Initialisierung eines Ergebnis-Dicts#
hp= {} # hp: hobbie - personen dict
for h in ahs:
hp[h] = []
hp
{'Lesen': [], 'Tanzen': [], 'Schwimmen': []}
for person, hob_liste in person_hobbies.items():
print( f"{person}: {hob_liste}")
for h in hob_liste:
print(f" {h}")
hp[h].append(person)
hp
Tina: ['Tanzen', 'Schwimmen']
Tanzen
Schwimmen
Tom: ['Tanzen', 'Lesen']
Tanzen
Lesen
{'Lesen': ['Tom'], 'Tanzen': ['Tina', 'Tom'], 'Schwimmen': ['Tina']}
integrierte Lösung#
hp2 = {}
for person, hob_liste in person_hobbies.items():
print( f"{person}: {hob_liste}")
for h in hob_liste:
print(f" {h}")
if h not in hp2:
hp2[h] = []
hp2[h].append(person)
hp2
Tina: ['Tanzen', 'Schwimmen']
Tanzen
Schwimmen
Tom: ['Tanzen', 'Lesen']
Tanzen
Lesen
{'Tanzen': ['Tina', 'Tom'], 'Schwimmen': ['Tina'], 'Lesen': ['Tom']}
Klausuraufgabe#
person_geburtstage = { "Tina": "2001-12-13",
"Tom": "2000-12-01" }
g_monat_person ={}
for person, gb in person_geburtstage.items():
jahr = gb[0:4]
monat = gb[5:7]
tag = gb[8:]
print( f"{person=}, {gb=}, Jahr: {jahr=}, {monat=}, {tag=}")
if monat not in g_monat_person:
g_monat_person[monat] = []
g_monat_person[monat].append(person)
person='Tina', gb='2001-12-13', Jahr: jahr='2001', monat='12', tag='13'
person='Tom', gb='2000-12-01', Jahr: jahr='2000', monat='12', tag='01'
g_monat_person
{'12': ['Tina', 'Tom']}
Strings#
hw = """Hallo Welt!
Wie geht es Dir?"""
hw
'Hallo Welt!\n\nWie geht es Dir?'
hw[0:5]
'Hallo'
hws = hw.split()
hws
['Hallo', 'Welt!', 'Wie', 'geht', 'es', 'Dir?']
hws
['Hallo', 'Welt!', 'Wie', 'geht', 'es', 'Dir?']
"_".join( hws )
'Hallo_Welt!_Wie_geht_es_Dir?'
# FALSCH
#join(hws, " ")
filepath = "/home/busse/Hallo Welt 2025-11-06.txt"
fp2 = "_".join( filepath.split() )
fp2
'/home/busse/Hallo_Welt_2025-11-06.txt'
datums = { "2025-11-06": [ "Frühstück", "Pthon 101"] }
list(datums.keys())[0]
'2025-11-06'
d = "2025-11-06"
d
'2025-11-06'
d.split("-")
['2025', '11', '06']
datums2 = { ('2025', '11', '06') : [ "Frühstück", "Pthon 101"],}
# gegeben
eingabe = { "2025-11-06-LA": [ "Frühstück", "Pthon 101"],
"2025-12-24-M": [ "Bruder sehen", "Oma besuchen" ] }
# gesucht
ergebnis = {}
for k,v in eingabe.items():
print( f"{k=}, {v=}")
k_neu = tuple( k.split("-") )
ergebnis[k_neu] = v
ergebnis
k='2025-11-06-LA', v=['Frühstück', 'Pthon 101']
k='2025-12-24-M', v=['Bruder sehen', 'Oma besuchen']
{('2025', '11', '06', 'LA'): ['Frühstück', 'Pthon 101'],
('2025', '12', '24', 'M'): ['Bruder sehen', 'Oma besuchen']}
# das geht auch nicht
#d3 = { { "jahr": 2025, "monat": 11, "Tag": 6} : [ "Frühstück", "Pthon 101"],
# "2025-12-24-M": [ "Bruder sehen", "Oma besuchen" ] }
datei = """
Name: jbusse@jbusse.de
cc: max.mustermann@web.de
---
Hallo Max,
sehen wir uns heute?
---
Signatur,
Ort
Straße
"""
datei.split("---", 1)
['\nName: jbusse@jbusse.de\ncc: max.mustermann@web.de\n',
'\n\nHallo Max,\n\nsehen wir uns heute?\n\n---\nSignatur,\nOrt\nStraße\n']
kopf, body = datei.split("---", 1)
kopf
'\nName: jbusse@jbusse.de\ncc: max.mustermann@web.de\n'
body
'\n\nHallo Max,\n\nsehen wir uns heute?\n\n---\nSignatur,\nOrt\nStraße\n'
a, b = [ "Hallo", "Welt" ]
a
'Hallo'
ottos_mops = """ottos mops trotzt
otto: fort mops fort
ottos mops hopst fort"""
zeilen = ottos_mops.splitlines()
zeilen
['ottos mops trotzt', 'otto: fort mops fort', 'ottos mops hopst fort']
# eingabe: zeilen
# ergebnis
ergebnis = []
for zeile in zeilen:
ergebnis.append( zeile.split() )
ergebnis
[['ottos', 'mops', 'trotzt'],
['otto:', 'fort', 'mops', 'fort'],
['ottos', 'mops', 'hopst', 'fort']]
nato = """A Alfa [ˈalfa]
B Bravo [ˈbravo]
C Charlie [ˈtʃali]
"""
"""
D Delta [ˈdɛlta]
E Echo [ˈɛko]
F Foxtrot [ˈfɔkstrɔt]
G Golf [ˈɡɔlf]
H Hotel [hoˈtɛl]
I India [ˈɪndia]
J Juliett [ˈdʒuliˈɛt]
K Kilo [ˈkilo]
L Lima [ˈlima]
M Mike [ˈmai̯k]
N November [noˈvɛmba]
O Oscar [ˈɔska]
P Papa [paˈpa]
Q Quebec [keˈbɛk]
R Romeo [ˈromio]
S Sierra [siˈɛra]
T Tango [ˈtaŋɡo]
U Uniform [ˈjunifɔm]
V Victor [ˈvɪkta]
W Whiskey [ˈwɪski]
X X-ray [ˈɛksrei̯]
Y Yankee [ˈjaŋki]
Z Zulu [ˈzulu]
"""
'\nD \tDelta \t[ˈdɛlta]\nE \tEcho \t[ˈɛko]\nF \tFoxtrot \t[ˈfɔkstrɔt]\nG \tGolf \t[ˈɡɔlf]\nH \tHotel \t[hoˈtɛl]\nI \tIndia \t[ˈɪndia]\nJ \tJuliett \t[ˈdʒuliˈɛt]\nK \tKilo \t[ˈkilo]\nL \tLima \t[ˈlima]\nM \tMike \t[ˈmai̯k]\nN \tNovember \t[noˈvɛmba]\nO \tOscar \t[ˈɔska]\nP \tPapa \t[paˈpa]\nQ \tQuebec \t[keˈbɛk]\nR \tRomeo \t[ˈromio]\nS \tSierra \t[siˈɛra]\nT \tTango \t[ˈtaŋɡo]\nU \tUniform \t[ˈjunifɔm]\nV \tVictor \t[ˈvɪkta]\nW \tWhiskey \t[ˈwɪski]\nX \tX-ray \t[ˈɛksrei̯]\nY \tYankee \t[ˈjaŋki]\nZ \tZulu \t[ˈzulu]\n'
aussprache = { "A": "Alfa",
"B": "Bravo" }
zeilen = nato.splitlines()
zeilen
['A \tAlfa \t[ˈalfa]', 'B \tBravo \t[ˈbravo]', 'C \tCharlie \t[ˈtʃali]']
'A \tAlfa \t[ˈalfa]'.split()
['A', 'Alfa', '[ˈalfa]']
aussprache = {}
for zeile in nato.splitlines():
teile = zeile.split()
print(teile)
k = teile[0]
v = teile[1]
aussprache[k] = v
aussprache
['A', 'Alfa', '[ˈalfa]']
['B', 'Bravo', '[ˈbravo]']
['C', 'Charlie', '[ˈtʃali]']
{'A': 'Alfa', 'B': 'Bravo', 'C': 'Charlie'}
aussprache = {}
for zeile in nato.splitlines():
teile = zeile.split(maxsplit=1)
print(teile)
k = teile[0]
v = teile[1].split()
aussprache[k] = v
aussprache
['A', 'Alfa \t[ˈalfa]']
['B', 'Bravo \t[ˈbravo]']
['C', 'Charlie \t[ˈtʃali]']
{'A': ['Alfa', '[ˈalfa]'],
'B': ['Bravo', '[ˈbravo]'],
'C': ['Charlie', '[ˈtʃali]']}
aussprache_liste = []
aussprache_dict = {}
for x in nato.splitlines():
teile = x.split()
#print(f"""{x},\n {teile}""")
aussprache_liste.append( teile )
k = teile[0]
v = teile[1]
aussprache_dict[k] = v
aussprache_liste
[['A', 'Alfa', '[ˈalfa]'],
['B', 'Bravo', '[ˈbravo]'],
['C', 'Charlie', '[ˈtʃali]']]
aussprache_dict
{'A': 'Alfa', 'B': 'Bravo', 'C': 'Charlie'}