Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Mengumpul Keputusan dengan Cekap daripada Pengiraan Berulang dalam Python?

Bagaimanakah Saya Boleh Mengumpul Keputusan dengan Cekap daripada Pengiraan Berulang dalam Python?

Linda Hamilton
Lepaskan: 2024-12-18 01:34:10
asal
854 orang telah melayarinya

How Can I Efficiently Collect Results from Repeated Calculations in Python?

Mengumpul Keputusan Pengiraan Berulang

Pernyataan Masalah:

Saya perlu mengumpul hasil pengiraan yang dilakukan berulang kali untuk berbilang nilai x dan gunakannya selepas itu.

Umum Pendekatan

Menggunakan Gelung Eksplisit:

  • Buat senarai atau kamus sebelum gelung dan tambah atau kaitkan hasil seperti yang dikira:
ys = []
for x in [1, 3, 5]:
    ys.append(x + 1)

ys = {}
x = 19
while x != 1:
    y = next_collatz(x)
    ys[x] = y
    x = y
Salin selepas log masuk

Menggunakan Pemahaman atau Penjana Ungkapan:

  • Pemahaman senarai:

    xs = [1, 3, 5]
    ys = [x + 1 for x in xs]
    Salin selepas log masuk
  • Pemahaman kamus:

    ys = {x: x + 1 for x in xs}
    Salin selepas log masuk

Menggunakan peta:

  • Peta fungsi kepada jujukan dan tukar hasilnya kepada senarai:

    def calc_y(an_x):
      return an_x + 1
    xs = [1, 3, 5]
    ys = list(map(calc_y, xs))
    Salin selepas log masuk

Khusus Contoh:

Mengumpul Keputusan untuk Tetap Urutan:

def make_list_with_inline_code_and_for():
    ys = []
    for x in [1, 3, 5]:
        ys.append(x + 1)
    return ys

def make_dict_with_function_and_while():
    x = 19
    ys = {}
    while x != 1:
        y = next_collatz(x)
        ys[x] = y # associate each key with the next number in the Collatz sequence.
        x = y # continue calculating the sequence.
    return ys
Salin selepas log masuk

Menguruskan Perubahan Data semasa Gelung:

Menggunakan Ungkapan Penjana:

def collatz_from_19():
    def generate_collatz():
        nonlocal x
        yield x
        while x != 1:
            x = next_collatz(x)
            yield x
    x = 19
    return generate_collatz()
Salin selepas log masuk

Menggunakan peta:

def collatz_from_19_with_map():
    def next_collatz2(value):
        nonlocal x
        x = value
        return next_collatz(x)
    x = 19
    return map(next_collatz2, range(1))
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengumpul Keputusan dengan Cekap daripada Pengiraan Berulang dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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