조건부 할당을 위한 목록 이해 사용
최근 토론에서 한 프로그래머는 for 루프를 if/로 변환하는 데 어려움을 겪었습니다. else 구조를 간결한 목록 이해로 구성합니다. 원래 코드 세그먼트는 다음과 같습니다.
results = [] for x in xs: results.append(f(x) if x is not None else '')
xs의 해당 요소가 None인 경우 결과 목록의 요소에 빈 문자열을 할당하고 None이 아닌 요소에 f 함수를 적용하려는 의도였습니다.
SyntaxError로 인해 목록 이해력을 생성하려는 초기 시도가 실패했습니다.
[f(x) for x in xs if x is not None else '']
목록을 성공적으로 사용하려면 이 작업에 대한 올바른 구문은 다음과 같습니다.
[f(x) if x is not None else '' for x in xs]
이 수정은 적절한 평가에 필수적인 if/else 검사의 순서를 유지합니다.
목록 이해 이해 구문
일반적으로 조건부 할당이 있는 목록 이해는 다음을 준수합니다. 구문:
[f(x) if condition else g(x) for x in sequence]
여기서:
또한 목록의 경우 조건에 따라 요소 필터링만 포함하는 컴프리헨션의 경우 구문은 다음과 같습니다.
[f(x) for x in sequence if condition]
목록 컴프리헨션을 넘어서는 조건식
사용된 것과 같은 조건식을 주목할 가치가 있습니다. 목록 이해에서는 이 구성에만 국한되지 않습니다. 조건에 따라 두 표현식 값 중 하나를 선택해야 하는 다양한 상황에서 사용할 수 있으며, 다른 언어의 삼항 연산자 ?:와 동일한 목적을 제공합니다.
a 외부 조건식의 예 list comprehension:
value = 123 print(value, 'is', 'even' if value % 2 == 0 else 'odd')
이 표현식은 값이 2로 나누어지는지 여부를 평가하고 해당 문자열을 인쇄합니다.
위 내용은 Python에서 조건부 할당에 대해 목록 이해를 효율적으로 사용하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!