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

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

Linda Hamilton
풀어 주다: 2024-12-18 01:34:10
원래의
851명이 탐색했습니다.

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿