Dec
30

Python 루프가 제대로 반복되지 않는 이유

12/30/2023 03:17 PM ~에 의해 Admin 입력 Python


Python 개발자로서 저는 최근 코드의 루프가 예상대로 반복되지 않는 이상한 문제에 직면했습니다. 타임스탬프가 범위에 속하는지 확인하기 위해 날짜 범위 목록을 반복하는 기능이 있었습니다.

내 코드는 다음과 같습니다.

def check_timestamp(timestamp):

  date_ranges = generate_ranges() 

  for range in date_ranges:
    print("First loop")

  for range in date_ranges:  
    print("Second loop")

def generate_ranges():
  return (
    {'start': date1, 'end': date2} 
    for date1, date2 in zip(start_dates, end_dates)
  )
  • "두 번째 루프"가 인쇄되지 않습니다.

일부 디버깅 후 생성기 표현식 대신 목록을 반환하도록 generate_ranges()를 변경했을 때 문제가 사라진 것을 확인했습니다.

def generate_ranges():
  return [
    {'start': date1, 'end': date2}
    for date1, date2 in zip(start_dates, end_dates) 
  ]

생성기 표현식이 루프 사이에 예상치 못한 동작을 도입한 것 같습니다. 평가를 목록에 강제로 적용하여 문제를 해결했습니다.

따라서 Python 코드에서 루프가 예상대로 반복되지 않는 경우 미묘한 버그를 유발할 수 있는 생성기 표현식이 있는지 확인하세요. 이를 표준 목록/튜플로 변환하는 것은 반복자 문제를 배제하는 쉬운 방법입니다.

다른 질문이 있으면 알려주세요!


당신의 생각

검색
스폰서
크립토워치
우리를 따르라
공지 사항

새로운 도구가 추가되었습니다: SVG 확대/축소 치수 계산기.

스폰서