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
Freigeben: 2024-12-18 01:34:10
Original
853 Leute haben es durchsucht

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
Nach dem Login kopieren

Verwendung eines Verständnisses oder Generators Ausdruck:

  • Listenverständnis:

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

    ys = {x: x + 1 for x in xs}
    Nach dem Login kopieren

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))
    Nach dem Login kopieren

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
Nach dem Login kopieren

Ä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()
Nach dem Login kopieren

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))
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage