[python-users] Themen 12.12.2018 & "Weihnachtskalender"

Klaus Bremer klaus.bremer at bmcct.de
So Dez 2 13:33:51 CET 2018


Hallo Stefan,

zur Lösung der zweiten Aufgabe des ersten Tages schau Dir mal „itertools.cycle“ und Sets an.

Dein Tipp für den zweiten Tag mit Counter führt in die richtige Richtung. Die Methode „most_common" allerdings ist nicht geeignet, sondern Du musst die die Werte der values betrachten. Mit einer Dictionary-Comprehension lassen sich die key-value Paare eines Dictionary leicht vertauschen (hashable values vorausgesetzt, was in der Aufgabe aber der Fall ist), was dann die Lösung leicht macht.

Gruß
Klaus



> Am 02.12.2018 um 12:17 schrieb Stefan Schneider <schneider.solingen at web.de>:
> 
> Hallo Daniel,
> 
> vielen Dank für den Tipp. 
> 
> Den ersten Teil des 1. Tages konnte ich lösen, bei der Lösung für den
> zweiten Teil hänge ich etwas und könnte einen Tipp von euch gebrauchen. Das
> ist mein Code:
> 
> data = []
> result = 0
> result_list = []
> follower = []
> 
> # Load data from txt file and add to list
> 
> data_file =
> open('D:\\Stefan\\Programme\\Python\AdventofCode2018\\AoC2018_01_data_calibr
> ation.txt', 'r')
> for line in data_file:
>    line = int(line)
>    data.append(line)
> 
> print(data)
> 
> # check whether result is twice
> 
> for x in range(len(data)):
>    result += data[x]
>    if result in result_list:
>        follower.append(result)
>    result_list.append(result)
>    print(data[x], result, result_list)
> 
> print(follower)
> for x in range(len(result_list)):
>    if result_list.count(result_list[x]) > 1:
>        print(result_list[x], result_list.count(result_list[x]))
> 
> 
> Ich lade zuerst die Grunddaten aus einer aus einer txt-Datei und speichere
> diese in einer Liste. Danach gehe ich die Liste durch und errechne jedes
> Zwischenergebnis. Die Zwischenergebnisse speichere ich in einer weiteren
> Liste. Als Schritt davor will ich überprüfen, ob das aktuelle Ergebnis
> bereits in der Ergebnisliste vorkommt. Falls ja, soll dieses Ergebnis in die
> Follower-Liste geschrieben werde. Mein Problem: Laut des Codes kommt jedes
> Ergebnis nur einmal vor. Glaube ich aber nicht. 
> 
> Wo ist mein Fehler? Kann mir jemand von euch weiterhelfen?
> 
> 
> Für die erste Aufgabe des 2. Tages kann ich einen Tipp geben:
> 
> Um die Buchstaben eines Strings zu zählen, kann man Pythons Standard-Library
> "collections" nutzen. Ich habe mal Beispielcode angefügt.
> 
> 
>>>> import collections
>>>> c = collections.Counter('helloworld')
> 
>>>> c
> Counter({'l': 3, 'o': 2, 'e': 1, 'd': 1, 'h': 1, 'r': 1, 'w': 1})
> 
>>>> c.most_common(3)
> [('l', 3), ('o', 2), ('e', 1)]
> 
> 
> Viele Grüße
> 
> Stefan
> 
> 
> -----Ursprüngliche Nachricht-----
> Von: python-users [mailto:python-users-bounces at uni-koeln.de] Im Auftrag von
> Daniel Steinberger
> Gesendet: Montag, 26. November 2018 13:29
> An: python-users at uni-koeln.de
> Betreff: [python-users] Themen 12.12.2018 & "Weihnachtskalender"
> 
> Hallo zusammen, dieses Mal tatsächlich etwas früher die Frage nach
> Themen: gibt es konkrete Wünsche oder Angebote?
> 
> Wir haben Anfragen zu den Themen:
>    * Subprocesses mit Python
>    * Method Resolution Order
> 
> Möchte bzw. kann jemand beim nächsten Termin zu einem dieser Themen etwas
> erzählen?
> 
> 
> Ansonsten habe ich noch einen Vorschlag zur Übung im Umgang mit Python.
> Es gibt eine jährliche Coding-Challange namens Advent of Code
> https://adventofcode.com/ die jedes Jahr einen Adventskalender mit kleinen
> aber gelegentlich kniffligen Programmieraufgaben anbietet. Das ganze ist
> Sprachagnostisch, d.h. kann in jeder beliebigen Sprache (oder gar ohne?)
> gelöst werden, da man nur die Lösungen braucht.
> 
> Ich schaue mir das immer gerne an und versuche die Aufgaben möglichst
> geistreich mit Python zu lösen. Vielleicht mögt ihr euch ja auch daran
> versuchen.
> 
> Vielleicht können wir nächstes Mal auch Lösungsansätze zu diesen Aufgaben
> diskutieren, wenn jemand bei den Aufgaben Probleme hat.
> 
> 
> Bis dahin und schönen Gruß,
> Daniel
> ________________________________________
> 
> Diese Mail erhalten Sie ueber die Mailingliste python-users der Universitaet
> zu Koeln Nachrichten an: python-users at uni-koeln.de Abonnement und
> Benutzereinstellungen:
> https://lists.uni-koeln.de/mailman/listinfo/python-users
> Listenarchiv: https://lists.uni-koeln.de/pipermail/python-users/
> 
> pyCologne Homepage: http://pycologne.de/
> 
> ________________________________________
> 
> Diese Mail erhalten Sie ueber die Mailingliste python-users der Universitaet zu Koeln
> Nachrichten an: python-users at uni-koeln.de
> Abonnement und Benutzereinstellungen: https://lists.uni-koeln.de/mailman/listinfo/python-users
> Listenarchiv: https://lists.uni-koeln.de/pipermail/python-users/
> 
> pyCologne Homepage: http://pycologne.de/



Mehr Informationen über die Mailingliste python-users