Problemstellung:
Ich muss die Ergebnisse einer wiederholt durchgeführten Berechnung erfassen für mehrere Werte von x und verwenden Sie sie anschließend.
Verwendung einer expliziten Schleife:
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!