>백엔드 개발 >파이썬 튜토리얼 >Python에서 반복 계산 결과를 효율적으로 수집하려면 어떻게 해야 합니까?

Python에서 반복 계산 결과를 효율적으로 수집하려면 어떻게 해야 합니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-18 01:34:10854검색

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

특정 예:

고정 결과 수집 순서:

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.