문제 설명:
반복적으로 수행된 계산 결과를 수집해야 합니다. 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!