ホームページ > バックエンド開発 > Python チュートリアル > Python で繰り返し計算された結果を効率的に収集するにはどうすればよいですか?

Python で繰り返し計算された結果を効率的に収集するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-18 01:34:10
オリジナル
854 人が閲覧しました

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

繰り返し計算の結果を収集する

問題文:

繰り返し実行された計算の結果を収集する必要があります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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート