Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich Ergebnisse aus wiederholten Berechnungen in Python effizient sammeln?

Wie kann ich Ergebnisse aus wiederholten Berechnungen in Python effizient sammeln?

Linda Hamilton
Linda HamiltonOriginal
2024-12-18 01:34:10895Durchsuche

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

Erfassung der Ergebnisse wiederholter Berechnungen

Problemstellung:

Ich muss die Ergebnisse einer wiederholt durchgeführten Berechnung erfassen für mehrere Werte von x und verwenden Sie sie anschließend.

Allgemein Ansätze

Verwendung einer expliziten Schleife:

  • Erstellen Sie eine Liste oder ein Wörterbuch vor der Schleife und hängen Sie Ergebnisse an oder verknüpfen Sie sie, während sie berechnet werden:
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

Verwendung eines Verständnisses oder Generators Ausdruck:

  • Listenverständnis:

    xs = [1, 3, 5]
    ys = [x + 1 for x in xs]
  • Wörterbuchverständnis:

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

Verwenden map:

  • Ordnen Sie eine Funktion einer Sequenz zu und konvertieren Sie das Ergebnis in eine Liste:

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

Spezifisch Beispiele:

Ergebnisse für einen Fix sammeln Reihenfolge:

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

Ändernde Daten während einer Schleife verwalten:

Verwenden eines Generatorausdrucks:

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

Karte verwenden:

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

Das obige ist der detaillierte Inhalt vonWie kann ich Ergebnisse aus wiederholten Berechnungen in Python effizient sammeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn