Seite 1 von 1
Erzeugen zweier Mengen
Verfasst: Sonntag 15. November 2020, 16:01
von linda2524
Hallo!
Ich lerne gerade Python und weiß nicht genau, wie ich 2 verschiedene Mengen erstelle.
Die 1. Menge wäre G = {i^2: 20 <= i <= 40 und i ist eine Natürliche Zahl}
Die 2. Menge wäre H = {i^3: 1 <= i <= 20 und i ist eine Natürliche und ungerade Zahl}
Nach Erstellen der beiden Mengen muss ich noch die Vereinigung und den Durchschnitt berechnen. Das wäre kein großes Problem, nur bräuchte ich vorher eine Idee, wie ich die Mengen definieren könnte.
Vielen Dank für Eure Hilfe.
Re: Erzeugen zweier Mengen
Verfasst: Sonntag 15. November 2020, 17:52
von __blackjack__
@linda2524: Python hat dafür einen Datentyp: `set`. Auf dem sind entsprechende Operationen definiert für Vereinigung und Schnittmenge. Das reicht eigentlich schon an Information wenn man die Grundlagen von Python entweder schon beherrscht, oder erlernt. Also Schleifen und so. Was in Grundlagentutorials steht. Es gibt eines in der Python-Dokumentation.
Nützlich aber nicht zwingend notwendig ist auch die Schreibweise als „comprehension“ die es auch in einer Variante als „set comprehension“ gibt.
Re: Erzeugen zweier Mengen
Verfasst: Montag 16. November 2020, 07:22
von snafu
Man sollte sich außerdem mit der eingebauten range()-Funktion beschäftigen, wenn man natürliche Zahlen aus einem bestimmten Intervall benötigt. Wichtig ist, dass der stop-Parameter dabei exklusiv ist, d.h. bei einem Intervall bis 40 muss man 41 angeben.
Re: Erzeugen zweier Mengen
Verfasst: Montag 16. November 2020, 14:09
von DeaD_EyE
Hier die schwierigere Lösung als set comprehension:
(anstelle von 20 + 1 kann man auch 21 schreiben)
Da es bei der Menge G keine Bedingung gibt, entfällt der if-Abfrage.
Buchempfehlung: Konkrete Mathematik (nicht nur) für Informatiker.
Schwerpunkt ist Mathematik mit Bezug auf Python.
Re: Erzeugen zweier Mengen
Verfasst: Montag 16. November 2020, 16:53
von snafu
Da Mengen in Python jedoch keine eindeutige Ordnung haben, kann man besser eine List Comprehension benutzen. Außerdem kennt range() das step-Argument, wodurch man etwas einfacher an die ungeraden Zahlen kommt. Demnach auch möglich:
Re: Erzeugen zweier Mengen
Verfasst: Montag 16. November 2020, 17:26
von Sirius3
@snafu: in der Aufgabe will man aber explizit mit Mengen arbeiten.
Re: Erzeugen zweier Mengen
Verfasst: Dienstag 17. November 2020, 10:42
von DeaD_EyE
snafu hat geschrieben: Montag 16. November 2020, 16:53
Außerdem kennt range() das step-Argument, wodurch man etwas einfacher an die ungeraden Zahlen kommt.
Stimmt. Gar nicht dran gedacht.
Wichtig ist aber, dass das Ergebnis kommt, welches gefordert wird: Eine Menge
Eine Menge ist eine Sammlung von Elementen, die nicht doppelt vorkommen. Eine Menge hat keine Information über die Reihenfolge der Elemente.
Bis auf die Tatsache, dass es nur eine Leere Menge gibt, bildet Python Mengen ziemlich gut ab.
In der Liste können Elemente doppelt vorkommen und die Reihenfolge der Elemente ist auch bekannt.
Meine Reaktion, als ich das erste Mal in Python ein Set() kennengelernt habe:
https://www.youtube.com/watch?v=9CS7j5I6aOc