>백엔드 개발 >파이썬 튜토리얼 >Python에서 조건부 할당에 대해 목록 이해를 효율적으로 사용하려면 어떻게 해야 합니까?

Python에서 조건부 할당에 대해 목록 이해를 효율적으로 사용하려면 어떻게 해야 합니까?

DDD
DDD원래의
2024-12-20 15:07:12652검색

How Can I Efficiently Use List Comprehensions for Conditional Assignments in Python?

조건부 할당을 위한 목록 이해 사용

최근 토론에서 한 프로그래머는 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) 및 g(x)는 조건에 따라 요소에 적용되는 표현식 또는 함수를 나타냅니다.
  • 조건은 f(x) 또는 g(x)를 평가할지 여부를 결정합니다.

또한 목록의 경우 조건에 따라 요소 필터링만 포함하는 컴프리헨션의 경우 구문은 다음과 같습니다.

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

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