Herumspielen mit Mengen, Listen, Dicts¶
erste Fingerübungen¶
Gegeben sei ein String x, z.B. x = "1234". Diesen String nun umwandeln in
eine Zahl (Was passiert, wenn x keine Zahl ist?)
Menge, Liste
sortierte Menge
Quersumme, iterierte Quersumme
dict mit Häufigkeit jeder Ziffer
Mengen¶
prim_19 = [ 2, 3, 5, 7, 11, 13, 17, 19 ] # 1 ist per Def keine Primzahl
odd_19 = [ 1, 3, 5, 7, 9, 11, 13, 15, 17, 19 ] # EN odd: ungerade
Mit Mengen einfach zu lösen:
ungerade Zahlen, die auch prim sind
ungerade Zahlen, die nicht prim sind
Primzahlen, die nicht ungerade sind
Listen¶
Erzeuge programmatisch:
obige Liste
odd_19programmatischalle geraden Zahlen von 1 bis 20, die keine Primzahlen sind
Liste von Primzahlen, die einen Nachfolger mit Abstand 2 haben:
[ 3, 5, 11, 17 ]Liste von 2-Tupeln von Primzahlen mit Abstand 2:
[ (3, 5), (5, 7), ... ]
Erzeuge:
Eine Liste mit n verschiedenen Integer-Zufallszahlen zwischen 10 und 20, mit verschiedenen Funktionen aus https://docs.python.org/3/library/random.html
Elemente hinzufügen / entfernen¶
Ziffern = { '0', '1' } # eine Menge
Zahlen = [ 1, 3, 2 ] # eine Liste
wie viele Elemente sind enthalten?
ist die
9(resp. die'9') enthalten?jeweils die
4(resp. die'4') hinzufügendie Menge
{'5', '6'}(resp. die Liste[ 5, 6 ]) hinzufügen
Alles auch “kreuzweise”, d.h. die Menge zur Liste hizufügen etc.
Dicts¶
Sprechen = { # ein dict von dicts
1: {'de': 'eins', 'en': 'one' },
2: {'de': 'zwei', 'en': 'two' },
3: {'ru': 'три', 'gr': 'τρία' },
0: {'ru': 'ноль' }}
Variablen miteinander abgleichen:
Welche Zahlen gibt es in
Sprechen?Welche Sprachen gibt es in
Sprechen?Wie viele verschiedene Sprachen gibt es in
Sprechen?Welche Zahlen aus
Sprechenkommen inZahlennicht vor?Ist
7inSprechenenthalten?Sprechen[7]ist undefiniert und wirft einen Fehler: Wie gibt man einen DefaultwertNonezurück?
Gesucht ist ein Dictionary Sprechen_ru, in dem zu allen russischen Zahlen die Aussprache genannt ist, z.B.
Sprechen_ru = {3: 'три', 0: 'ноль'}:
Erzeuge dieses Dict automatisch aus
Sprechen.Mache das für alle Sprachen, erzeuge also ein dict:
Aussprache = { 'ru' : {3: 'три', 0: 'ноль'}, 'en' : ... }
Bingo¶
Fingerübungen zur Bingo-Aufgabe aus Python 1
Die “Bingo-Aufgabe”: Erzeugen Sie Lose für das Spiel Bingo. Repräsentieren Sie ein Los als eine Liste von Listen mit jeweils 5 verschiedenen Zahlen, die die Spalten eines Bingo-Loses repräsentieren: Erste Spalte 5 Zahlen zwischen 1 und 15, zweite Spalte 5 Zahlen zwischen 16 und 30, usw.
![]()
bingo_los = [ [15, 9, 2, 12, 6], [27, 16, ...], ... ]
Vorübung¶
Gegeben sei ein dict listen_dict:
prim = [2, 3, 5, 7, 11, 13]
listen_dict = {}
listen_dict["prim"] = prim
selektieren Sie die zweite Primzahl aus dem dict
listen_dictfügen Sie zu
primdie Primzahl17hinzuwie lautet nun die höchste Primzahl im
listen_dict?
Listen erzeugen¶
Erzeuge:
a) eine (sortierte) Liste mit Zahlen von 16-30
Sei liste_a = ... Ihre Lösung aus Teilaufgabe a). Ändern Sie Ihren Code so, dass Sie nicht für jede Teilaufgabe eine eigene Variable anlegen, sondern mit dem dict listen_dict arbeiten: listen_dict['a'] = ....
Konsultiere https://docs.python.org/3/library/random.html, dann weitere Aufgaben:
b) Erzeugen Sie eine Liste mit 5 zufälligen Zahlen “mit zurücklegen” zwischen 16 und 30 (
random.randint())c) Schütteln Sie die (sortierte) Liste
listen_dict['a']durcheinander (random.shuffle())d) Erzeugen Sie eine Liste mit Zahlen zwischen
1und61mit Schrittweite15
nachlesen:
random.choices()random.shuffle()random.sample()
Aus einer Liste von Zahlen:
wiederholt eine bestimmte Zahl auswählen:
random.choice()… und entfernen
zufällig ein n bestimmen, und die n-te Zahl herausnehmen:
pop()die Liste shuffeln, und dann die ersten 5 Zahlen auswählen.
Werden Sie selbst kreativ: Versuchen Sie, für die 5-er Liste auf Basis Methoden aus dem Paket random möglichst viele weitere Lösungen zu finden!
Dict von Listen erzeugen¶
Erzeugen Sie ein Dict,
dessen keys Zahlen zwischen
1und61mit Schrittweite15sind,und die zugehörige Werte leere Listen sind
Gehen Sie das dict in einer Schleife durch: füllen Sie in einer inneren Schleife für jeden Key die leere Liste an:
als Liste mit 5 zufälligen Zahlen “mit zurücklegen”
als Liste mit 5 zufälligen Zahlen “ohne zurücklegen”:
solange die Liste noch keine 5 Elemente enthält:
neue Zufallszahl erzeugen
falls nicht schon ‘drinn in der Liste: hinzufügen
eleganter, mit Hilfe einer der Lösungen von oben: eine Liste mit 5 zufälligen Zahlen “ohne zurücklegen”
Bingo?!