«generator» etiketlenmiş sorular

Bir üreteç, bir alt yordamın bir genellemesidir ve öncelikle yineleyicilerin yazılmasını basitleştirmek için kullanılır. Bir üreteçteki getiri ifadesi, atlanacak bir eşdizimi belirtmez, bunun yerine bir değeri bir ana yordama geri iletir.





7
Sonsuz bir üretici için bir ifade var mı?
Sonsuz elemanlar üretebilen düz bir üreteç ifadesi var mı? Bu tamamen teorik bir sorudur. Burada "pratik" bir cevaba gerek yok :) Örneğin, sonlu bir üretici yapmak kolaydır: my_gen = (0 for i in xrange(42)) Bununla birlikte, sonsuz bir tane yapmak için ad alanımı sahte bir işlevle "kirletmem" gerekiyor: def _my_gen(): …

12
Python oluşturucu modeline eşdeğer C ++
C ++ 'da taklit etmem gereken bazı örnek Python kodum var. Herhangi bir özel çözüme ihtiyacım yok (ortak rutin bazlı verim çözümleri gibi, kabul edilebilir cevaplar olsa da), sadece anlamsallığı bir şekilde yeniden üretmem gerekiyor. piton Bu, temel bir dizi üretecidir ve gerçekleştirilmiş bir sürümü saklamak için açıkça çok büyüktür. …



9
Python Boş Üretici Fonksiyonu
Python'da, verim anahtar sözcüğünü işlevin gövdesine koyarak bir yineleyici işlevi kolayca tanımlanabilir, örneğin: def gen(): for i in range(100): yield i Değer vermeyen (0 değer üreten) bir üretici fonksiyonunu nasıl tanımlayabilirim, aşağıdaki kod çalışmaz, çünkü python bunun normal bir fonksiyon değil bir jeneratör olduğunu varsayamaz: def empty(): pass Gibi bir …
108 python  generator 

3
Python: bir jeneratör olarak özyinelemeli bir algoritma kullanma
Son zamanlarda, önemsiz kısıtlamalarla belirli dizileri oluşturmak için bir işlev yazdım. Sorun, doğal özyinelemeli bir çözümle geldi. Şimdi, nispeten küçük girdiler için bile dizilerin birkaç bin olduğu, bu nedenle algoritmamı tüm dizilerle bir listeyi doldurmak için kullanmak yerine bir jeneratör olarak kullanmayı tercih ederim. İşte bir örnek. Bir dizgenin tüm …

4
enumerate () - Python'da bir jeneratör oluşturma
Bir jeneratör işlevinin sonucunu python'un enumerate () işlevine geçirdiğimde ne olacağını bilmek istiyorum. Misal: def veryBigHello(): i = 0 while i < 10000000: i += 1 yield "hello" numbered = enumerate(veryBigHello()) for i, word in numbered: print i, word Numaralandırma tembel bir şekilde mi yineleniyor yoksa her şeyi birinciye mi …

8
Python: üretici ifadesi ile getiri karşılaştırması
Python'da, bir üretici ifadesi aracılığıyla bir üretici nesnesi oluşturmakla getiri ifadesini kullanmak arasında herhangi bir fark var mı? Verim kullanarak : def Generator(x, y): for i in xrange(x): for j in xrange(y): yield(i, j) Oluşturucu ifadesini kullanma : def Generator(x, y): return ((i, j) for i in xrange(x) for j …

17
bir yinelenebilirliği sabit boyutlu parçalara bölme
Olası Yineleme: Python'da bir listeyi eşit büyüklükte parçalara nasıl bölersiniz? Girdi olarak yinelenebilen ve yinelenebilir yinelenebilir bir "toplu" işlevi bulamadığıma şaşırdım. Örneğin: for i in batch(range(0,10), 1): print i [0] [1] ... [9] veya: for i in batch(range(0,10), 3): print i [0,1,2] [3,4,5] [6,7,8] [9] Şimdi, oldukça basit olduğunu düşündüğüm …

6
"Raylar oluşturucu denetleyici" için testler, varlıklar ve yardımcılar oluşturmayı atlamak için sözdizimi?
Yardımı okudum ve testlerin, varlıkların ve yardımcı dosyaların oluşturulmasını atlamak için aşağıdaki komutu denedim $ 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 found] error false [not found] Yukarıdaki …

6
Jeneratörlerle zaman uyumsuz / bekleme ve ES6 verimi arasındaki fark
" Jeneratörler" adlı bu harika makaleyi okuyordum ve bu, jeneratör işlevlerini işlemek için yardımcı bir işlev olan bu işlevi açıkça vurgulamaktadır: function async(makeGenerator){ return function () { var generator = makeGenerator.apply(this, arguments); function handle(result){ // result => { done: [Boolean], value: [Object] } if (result.done) return Promise.resolve(result.value); return Promise.resolve(result.value).then(function (res){ …

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.