Die Funktion `xrange()` erstellt im Gegensatz zu `range()` keine Liste sondern ein Objekt, das sich nur so verhält als wäre es eine Sequenz. Der Speicherverbrauch für `xrange(10)` ist der gleiche wie der für `xrange(100000)`.DasPinsch hat geschrieben:gleich noch ne Frage:
ist
for i in xrange(1000):
bla
schneller oder langsamer als
i = 0
while i < 1000:
bla
i += 1
?
irgendwie habe ich Angst, dass das Erstellen einer Liste viel Zeit in Anspruch nehmen könnte
An Deinem Primzahlentest finde ich "unpythonic", das er Schritt für Schritt dem Computer erklärt was er machen soll, aber für einen Menschen nicht "lesbar" ist. Man muss auch erstmal schauen was getan wird.
Schöner finde ich zum Beispiel dieses Rezept: http://aspn.activestate.com/ASPN/Cookbo ... ipe/117119
Ich habe gerade ein wenig nach A* gesucht und es scheint den normalen Dijkstra Algorithmus um eine Heuristik zu erweitern. Ich würde es erstmal mit dem normalen Dijkstra probieren und schauen ob der von der Geschwindigkeit her nicht ausreicht. Die Knotenmenge U verwaltet man am besten in einer Heap-Queue. Python liefert netterweise ein entprechendes Modul: 'heapq'. Das ist wesentlich schneller als Listen + sortieren.