Für sich allein wäre es ein Syntaxfehler. In Klammern, es ist ein generator expression:
(randrange(10**10) for i in range(100))
einen Generator zurückgibt, die die Ergebnisse von 100 Anrufen randrange(10**10)
ergeben werden, einen nach dem anderen.
in eckigen Klammern, es ist ein list comprehension:
[randrange(10**10) for i in range(100)]
gibt eine Liste von 100 Zahlen von einem Aufruf randrange(10**10)
resultierenden jeder.
Der Vorteil eines Generatorausdrucks gegenüber einem Listenverständnis besteht darin, dass er lazy ausgewertet wird, so dass Sie nicht die gesamte Liste im Speicher aufbauen und behalten müssen (was besonders bei sehr großen, möglicherweise unendlichen Generatoren relevant ist).
Es war in einem [] also ich denke, es ist ein Listenverständnis. – KodeSeeker