yanımda ben bu en verimli olmadığını biliyoruzkullanma sırasında durum çok daha olması gerektiği gibi
list(i for i in range(100) if i*i < 30)
olarak liste comprehensions/jeneratör ifadelerde if
ve for
kullanabilir ama taşıyabilir ifadelerde karmaşık ve bu sadece bir örnektir.
list(i for i in range(100) while i*i < 30)
Ancak while
jeneratörü anlaşılamamıştır: Böyle bir şey durdurmak için jeneratör ifadesini anlamanın bir yolu var mı Ancak bu yine de yüz tekrarlamalar geçer ve sadece ilk 6'da bir değer verir ifade. Öyleyse, sorum şu ki, yeni değerleri vermese bile hesaplama işlemine devam etmemek için bir durdurma koşuluyla bir jeneratör ifadesini nasıl yazarım.
Sadece bir not: '[i aralığında i (i) 'i kullanarak' ' – Joril
' 'kullanarak bir liste oluşturabilirsiniz. İlginç bir şekilde, [PEP3142] vardı (https://www.python.org/dev/peps/ pep-3142 /) bu soru sorulduğunda açık. Verilen kullanım durumu neredeyse tam olarak budur. Guido bunu Mayıs 2013'te nuklediyor –