Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mengembalikan Berbilang Nilai dengan Cekap daripada Gelung Python?

Bagaimanakah Saya Boleh Mengembalikan Berbilang Nilai dengan Cekap daripada Gelung Python?

Linda Hamilton
Linda Hamiltonasal
2024-12-21 14:25:17335semak imbas

How Can I Efficiently Return Multiple Values from a Python Loop?

Menggunakan Gelung dan Kembali untuk Mendapatkan Berbilang Nilai dalam Python

Apabila cuba mengembalikan berbilang nilai daripada gelung dalam Python, seseorang mungkin menghadapi batasan apabila menggunakan pernyataan pulangan. Ini boleh menjadi sangat mencabar apabila bekerja dengan kamus global dan menyepadukan dengan aplikasi luaran.

Dalam kod yang disediakan, pendekatan awal menggunakan cetakan untuk memaparkan nilai kamus, yang menimbulkan masalah untuk bot Discord kerana ini hanya mengeluarkan data secara setempat . Walau bagaimanapun, apabila menggantikan cetakan dengan pulangan, nilai yang dikembalikan tidak mencukupi, kerana gelung terkeluar lebih awal.

Untuk menangani isu ini, kami boleh menggunakan kaedah alternatif:

Penghasilan Penjana

Pendekatan ini menghasilkan nilai secara berperingkat semasa lelaran gelung. Menggunakan fungsi penjana, kita boleh mencipta aliran data:

def show_todo():
    for key, value in cal.items():
        yield value[0], key

Kami kemudiannya boleh menukar nilai yang terhasil ke dalam senarai atau tuple:

a = list(show_todo())  # or tuple(show_todo())

Melampirkan pada Bekas

Kami juga boleh menambahkan nilai pada senarai dalam gelung:

def show_todo():
    my_list = []
    for key, value in cal.items():
        my_list.append((value[0], key))
    return my_list

Pemahaman Senarai

Kaedah yang lebih ringkas melibatkan penggunaan pemahaman senarai untuk menjana senarai secara langsung:

def show_todo():
    return [(value[0], key) for key, value in cal.items()]

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengembalikan Berbilang Nilai dengan Cekap daripada Gelung Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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