Bagaimana untuk Semak sama ada Penjana Kosong dalam Python?

Barbara Streisand
Lepaskan: 2024-10-20 12:33:30
asal
313 orang telah melayarinya

How to Check if a Generator is Empty in Python?

Mengesan Permulaan Penjana Kosong

Dalam Python, penjana ialah iterator yang menghasilkan nilai satu demi satu. Oleh itu, menentukan sama ada penjana kosong dari awal boleh menjadi satu cabaran. Tidak seperti senarai atau tupel, penjana tidak mempunyai panjang yang wujud atau kaedah isEmpty.

Menangani Cabaran

Untuk menangani perkara ini, satu pendekatan biasa melibatkan penggunaan fungsi pembantu untuk mengintip nilai pertama dalam penjana tanpa memakannya. Jika fungsi peek mengembalikan Tiada, ia menunjukkan bahawa penjana tidak mempunyai item.

Pelaksanaan Cadangan

Satu fungsi sedemikian, dinamakan peek, boleh dilaksanakan seperti berikut:

<code class="python">def peek(iterable):
    try:
        first = next(iterable)
    except StopIteration:
        return None
    return first, itertools.chain([first], iterable)</code>
Salin selepas log masuk

Menggunakan Peek untuk Menentukan Penjana Kosong

Untuk menentukan sama ada penjana kosong, anda boleh menggunakan fungsi mengintip dengan cara berikut:

<code class="python">res = peek(mysequence)
if res is None:
    # sequence is empty.  Do stuff.
else:
    first, mysequence = res
    # Do something with first, maybe?
    # Then iterate over the sequence:
    for element in mysequence:
        # etc.</code>
Salin selepas log masuk

Dalam contoh ini, jika penjana kosong, fungsi peek akan mengembalikan Tiada dan keadaan if akan menjadi benar. Jika tidak, blok else akan dilaksanakan. Dengan menggunakan pendekatan ini, anda boleh mengesan dengan berkesan jika penjana kosong dari permulaannya.

Atas ialah kandungan terperinci Bagaimana untuk Semak sama ada Penjana Kosong dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!