Als «generator» getaggte Fragen

Ein Generator ist eine Verallgemeinerung einer Unterroutine, die hauptsächlich verwendet wird, um das Schreiben von Iteratoren zu vereinfachen. Die Yield-Anweisung in einem Generator gibt keine Coroutine an, zu der gesprungen werden soll, sondern gibt einen Wert an eine übergeordnete Routine zurück.

6
Syntax zum Überspringen des Erstellens von Tests, Assets und Helfern für "Rails Generate Controller"?
Ich habe die Hilfe gelesen und den folgenden Befehl ausprobiert, um die Generierung von Tests, Assets und Hilfedateien zu überspringen $ bin/rails generate controller home index --helper false --assets false --controller-specs false --view-specs false create- app/controllers/home_controller.rb route get "home/index" invoke erb create app/views/home create app/views/home/index.html.erb invoke rspec error false [not …

6
Unterschied zwischen Async / Warten und ES6-Ertrag bei Generatoren
Ich habe gerade diesen fantastischen Artikel « Generatoren » gelesen und er hebt diese Funktion deutlich hervor, die eine Hilfsfunktion für die Handhabung von Generatorfunktionen ist: function async(makeGenerator){ return function () { var generator = makeGenerator.apply(this, arguments); function handle(result){ // result => { done: [Boolean], value: [Object] } if (result.done) …

7
Wie man einen Generator durchläuft
Wie kann man einen Generator durchlaufen? Ich dachte so: gen = function_that_returns_a_generator(param1, param2) if gen: # in case the generator is null while True: try: print gen.next() except StopIteration: break Gibt es einen pythonischeren Weg?
80 python  generator 


9
Unterscheidung zwischen Iterator und Enumerator
Eine Interviewfrage für einen .NET 3.5-Job lautet "Was ist der Unterschied zwischen einem Iterator und einem Enumerator"? Dies ist eine zentrale Unterscheidung, was mit LINQ usw. zu tun ist. Was ist der Unterschied? Ich kann anscheinend keine solide Definition im Netz finden. Machen Sie keinen Fehler, ich kann die Bedeutung …


6
Können Generatoren rekursiv sein?
Ich habe naiv versucht, einen rekursiven Generator zu erstellen. Hat nicht funktioniert. Das habe ich getan: def recursive_generator(lis): yield lis[0] recursive_generator(lis[1:]) for k in recursive_generator([6,3,9,1]): print(k) Alles was ich bekam war der erste Gegenstand 6. Gibt es eine Möglichkeit, solchen Code zum Laufen zu bringen? Im Wesentlichen den yieldBefehl in …

6
Warum gibt es in Python keine erste (iterierbare) integrierte Funktion?
Ich frage mich, ob es einen Grund gibt, warum es first(iterable)in den in Python integrierten Funktionen keine gibt , ähnlich wie any(iterable)und all(iterable)(es kann irgendwo in einem stdlib-Modul versteckt sein, aber ich sehe es nicht in itertools). firstwürde eine Kurzschlussgeneratorauswertung durchführen, so dass unnötige (und möglicherweise unendlich viele) Operationen vermieden …



1
Warum wird als nächstes eine 'StopIteration' ausgelöst, aber 'for' eine normale Rendite?
Warum führt die Verwendung forin diesem Codeteil zu no StopIteration oder forfängt die Schleife alle Ausnahmen ein und wird dann stillschweigend beendet? In welchem ​​Fall haben wir das Fremde return? Oder ist das raise StopIterationverursacht durch : return None? #!/usr/bin/python3.1 def countdown(n): print("counting down") while n >= 9: yield n …

8
Holen Sie sich das n-te Element eines Generators in Python
Gibt es eine syntaktisch präzisere Art, Folgendes zu schreiben? gen = (i for i in xrange(10)) index = 5 for i, v in enumerate(gen): if i is index: return v Es scheint fast natürlich, dass ein Generator einen gen[index]Ausdruck haben sollte, der als Liste fungiert, aber funktional mit dem obigen …
70 python  generator 

7
Gezippte Python-Generatoren, wobei der zweite kürzer ist: So rufen Sie Elemente ab, die stillschweigend verbraucht werden
Ich möchte 2 Generatoren (möglicherweise) unterschiedlicher Länge analysieren mit zip: for el1, el2 in zip(gen1, gen2): print(el1, el2) Wenn gen2jedoch weniger Elemente vorhanden sind, wird ein zusätzliches Element von gen1"verbraucht". Zum Beispiel, def my_gen(n:int): for i in range(n): yield i gen1 = my_gen(10) gen2 = my_gen(8) list(zip(gen1, gen2)) # Last …

5
Rückkehr oder Ausbeute von einer Funktion, die einen Generator aufruft?
Ich habe einen Generator generatorund auch eine bequeme Methode dazu - generate_all. def generator(some_list): for i in some_list: yield do_something(i) def generate_all(): some_list = get_the_list() return generator(some_list) # <-- Is this supposed to be return or yield? Sollte generate_all returnoder yield? Ich möchte, dass die Benutzer beider Methoden es gleich …

3
Am pythonischsten aufrufbar, um True zu generieren?
Die Klasse verwendet collections.defaultdicteine Standardfactory, mit der ein Standardwert generiert wird. Wenn die im dict-like-Objekt enthaltenen Werte standardmäßig verwendet werden sollen, Falsekann die Instanz wie folgt erstellt werden: d_false = defaultdict(bool) Was ist der pythonischste Weg, um dasselbe für einen Standardwert von zu erreichen True? Mit anderen Worten, gibt es …
11 python  generator 

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.