Cara Menentukan Jika Penjana Kosong dalam Python

Patricia Arquette
Lepaskan: 2024-10-20 10:40:02
asal
907 orang telah melayarinya

How to Determine If a Generator is Empty in Python

Menentukan Kekosongan Penjana

Dalam Python, penjana ialah alat yang berkuasa untuk penilaian malas dan mengulangi set data yang besar. Walau bagaimanapun, menentukan sama ada penjana kosong memberikan cabaran unik kerana sifat dinamiknya. Tidak seperti senarai atau tupel, penjana tidak mempunyai atribut saiz dan hanya melelakannya akan menghasilkan pengecualian StopIteration.

Peek vs. HasNext

Sesetengah mungkin mencadangkan menggunakan fungsi peek() untuk menyemak sama ada penjana mempunyai item. Walaupun peek() membolehkan anda mendapatkan semula item pertama penjana tanpa memakannya, ia tidak menyediakan cara untuk menentukan sama ada penjana itu kosong. Ini kerana peek() menimbulkan pengecualian StopIteration apabila penjana kosong, yang tidak dapat dibezakan daripada pengecualian yang akan dibangkitkan apabila cuba melelakan ke atas penjana kosong.

Begitu juga, fungsi hasNext() , biasanya ditemui dalam Java, tidak tersedia dalam penjana Python.

Menyemak Kekosongan dari Mula

Untuk menentukan sama ada penjana kosong dari awal, anda boleh menggunakan fungsi tersuai seperti yang disediakan dalam respons:

<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

Fungsi ini mendapatkan semula elemen pertama penjana, mengembalikan Tiada jika penjana kosong. Ia juga mengekalkan keadaan penjana dengan mengembalikan versi diubah suai yang merangkumi elemen pertama.

Penggunaan

Untuk menggunakan fungsi ini, anda boleh memanggilnya dengan penjana sebagai hujah:

<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

Semakan ini membolehkan anda menentukan sama ada penjana kosong dan mengendalikan kes kosong dengan sewajarnya, sebelum mengulanginya.

Atas ialah kandungan terperinci Cara Menentukan Jika 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!