Durch die Programmierung Collective Intelligence von Toby Segaran, dieser Teil des Codes verwirrt mich leicht. In python2 geschrieben, geben die SQLite-Select-Anweisungen einen Iterator zurück, den er dann in einer for-Schleife in (urlid) und später (linker) wiederfindet. Ich verstehe nicht, warum er diese Syntax verwendet, ist das ein Tupel? Und was ist der Zweck? Danke vielmals.Tuple und Iteratoren in For Loops Python
for i in range(iterations):
print "Iteration %d" % (i)
for (urlid,) in self.con.execute('select rowid from urllist'):
pr=0.15
# Loop through all the pages that link to this one
for (linker,) in self.con.execute(
'select distinct fromid from link where toid=%d' % urlid):
# Get the PageRank of the linker
linkingpr=self.con.execute(
'select score from pagerank where urlid=%d' % linker).fetchone()[0]
Wenn sie mit einzelnen Element Tupeln tun haben, ist es wichtig, das Komma zu erinnern. Ohne sie haben Sie '(urlid)', das nur Klammern verwendet, um einen Ausdruck zu umbrechen, so dass Sie nur "urlid" erhalten, während '(urlid,)' ein Ein-Element-Tupel ist. –
Ja genau, daher der letzte Satz meines Posts. –