問題文:
繰り返し実行された計算の結果を収集する必要がありますx の複数の値を指定し、後でそれらを使用します。
明示的ループの使用:
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
内包表記またはジェネレーターの使用式:
リスト内包:
xs = [1, 3, 5] ys = [x + 1 for x in xs]
辞書内包:
ys = {x: x + 1 for x in xs}
使用中map:
関数をシーケンスにマップし、結果をリストに変換します:
def calc_y(an_x): return an_x + 1 xs = [1, 3, 5] ys = list(map(calc_y, xs))
Specific例:
の結果の収集固定シーケンス:
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
ループ中のデータ変更の管理:
ジェネレーター式の使用:
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()
使用中マップ:
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))
以上がPython で繰り返し計算された結果を効率的に収集するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。