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
Linda Hamiltonasal
2024-12-18 01:34:10931semak imbas

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

Menggunakan Pemahaman atau Penjana Ungkapan:

  • Pemahaman senarai:

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

    ys = {x: x + 1 for x in xs}

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))

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

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()

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))

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!

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