[python-users] Themen 12.12.2018 & "Weihnachtskalender"

Stefan Schneider schneider.solingen at web.de
So Dez 2 12:17:10 CET 2018


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/



Mehr Informationen über die Mailingliste python-users