Array und Liste
Hallo, ich bin ganz neu in Python, mir fehlt deshalb noch der Überblick. Als kleine Fingerübung (und um zu sehen wie schnell Python ist) möchte ich gerne mit sechs Würfen virtuell 10000 mal würfeln und die erzielten Augenzahlen darstellen. In meinem ollen Basic hätte ich da ganz simpel einen Array erstellt, und bei jeder Würfelrunde Zaehler(erwürfelt) um eins inkrementiert. Wie ich sehe sind Arrays bei Python nicht gerne gesehen. Wie löst ein Pythoniker diese Aufgabe elegant mit Listen?
1) Manchmal eignet man sich schlechte Gewohnheiten an, die man nicht leicht wieder los wird, wenn man einfach drauflos fuhrwerkt. Das möchte ich gerne vermeiden.Sirius3 hat geschrieben: Dienstag 14. Januar 2020, 13:03 Das kannst Du Dir ja selbst aneignen, indem Du lernst, wie man Listen benutzt. Du kannst dann gerne Deine Lösung hier zeigen, vielleicht hat dann der ein oder andere noch Tipps, was besser geht.
2) Ich sehe, dass Python gründlich anders ist, als die Sprachen, die ich sonst schon gesehen habe. Ich würde gerne diesen Unterschied verstehen. Dabei würde mir es mir tatsächlich helfen, wenn jemand, der weiss, wie man die Möglichkeiten von Python geschickt und sachgerecht zur Lösung dieser kleinen Übung einsetzt so nett wäre es mir zu zeigen..
- __blackjack__
- User
- Beiträge: 14051
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@uriezzo: Wegen 1) war dann ja der zweite Teil von Sirius3's Antwort: Ergebnis zeigen.
Man würde eine Schleife schreiben die 10.000 mal würfelt und in einer geeigneten Datenstruktur mitzählen. Entweder einer Liste oder einem Wörterbuch. Bei der Liste müsste man entweder den 0ten Eintrag ignorieren wenn von 1 bis 6 gewürfelt wird und eine Liste mit 7 0en initialisieren. Bei einem Wörterbuch muss man entweder eines mit 0en für die Schlüssel 1 bis 6 initialisieren, oder ein `collections.defaultdict` oder ein `collections.Counter` verwenden.
Man würde eine Schleife schreiben die 10.000 mal würfelt und in einer geeigneten Datenstruktur mitzählen. Entweder einer Liste oder einem Wörterbuch. Bei der Liste müsste man entweder den 0ten Eintrag ignorieren wenn von 1 bis 6 gewürfelt wird und eine Liste mit 7 0en initialisieren. Bei einem Wörterbuch muss man entweder eines mit 0en für die Schlüssel 1 bis 6 initialisieren, oder ein `collections.defaultdict` oder ein `collections.Counter` verwenden.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
@uriezzo: Du schreibst doch, dass es eine kleine Fingerübung ist. Die schlechten Gewohnheiten bringst du aus Basic sowieso mit. Übrigens sehe ich nicht, dass Arrays ungern gesehen sind. Es gibt schon Anwendungsfälle dafür. Wenn man einen erreicht hat, merkt man, wenn man ein Modul benutzt, dass überhaupt Arrays zur Verfügung stellt 
