Python의 List Comprehension에서 If-Elif-Else 사용

Salman Mehmood 2023년6월21일
Python의 List Comprehension에서 If-Elif-Else 사용

이 설명을 통해 연결이 무엇인지, 파이썬에서 if-elif-else 또는 목록 내포에서 연결을 적용하는 방법을 배웁니다.

Python의 연결을 사용하여 List Comprehension에서 if-elif-else 사용

Python 커뮤니티의 흥미로운 질문은 목록 이해에서 if-elif-else를 사용하는 방법입니다. 우리는 이미 list comprehension에서 if-else를 사용하는 방법을 알고 있지만 Python 스크립트를 작성하는 동안 list comprehension에서 모든 코드를 작성할 수 없다는 것을 알아야 합니다.

Python의 목록 이해에서 연결 구현

list comprehension 내부에는 if-elif-else라는 개념이 없지만 대안이 될 체이닝을 사용할 수 있습니다. 우선 체이닝이 무엇인지 알아야 합니다.

연결은 다음과 같은 여러 조건이 있을 때 사용됩니다.

if condition1:
	code1
elif condition2:
	code2
elif condition3:
	code3
else condition4:
	code4

위의 코드는 체이닝의 워크플로우가 아무 것도 하지 않는다는 것을 설명합니다. 이는 첫 번째 조건이 참을 충족하지 않으면 두 번째 조건이 실행됨을 나타냅니다.

조건이 충족되지 않으면 else 블록이 실행됩니다.

if-elif-else를 연결로 변환해 보겠습니다. 하지만 모든 조건에 단일 문이 포함되어 있으면 작동합니다. 체이닝을 생성하기 위해 code1부터 시작하여 명령이 true를 충족하는지 확인한 다음 컨트롤이 else code2 if condition2인 두 번째 체이닝을 검사합니다.

code1 if condition1 else code2 if condition2 else code3 if consition3 else condition4

else code2 if condition2가 true를 충족하면 컨트롤이 세 번째 연결인 else code3 if conditions3으로 이동합니다. 또한 true를 충족하면 제어가 else condition4 인 네 번째 연결로 이동합니다.

이것을 연결이라고 하며 이것이 작동하는 방식입니다.

파이썬에서 if-elif-else로 목록 이해

예를 들어 Python 스크립트로 이동하여 이 시나리오를 연결에 적용하는 방법을 살펴보겠습니다.

조건이 충족되면 상태를 저장하는 프로그램이 있다고 가정합니다. 이 프로그램에서는 목록을 반복하고 여러 조건을 확인하고 status라는 빈 목록에 결과를 추가합니다.

list = [1, 0, 2, -3, 11, 0, -1]

status = []
for i in list:
    if i > 0:
        status.append("Positive")
    elif i < 0:
        status.append("Negative")
    else:
        status.append("Zero")
print(status)

출력:

['Positive', 'Zero', 'Positive', 'Negative', 'Positive', 'Zero', 'Negative']

우리는 위의 코드를 한 줄의 코드가 될 목록 이해로 변환할 수 있습니다. 목록 이해는 모든 코드에서 작동하지 않으며 elif 블록이나 절을 허용하지 않지만 elif를 연결하여 사용할 것입니다.

List Comprehension을 만들기 위해 빈 목록을 만들고 세 개의 체인을 배치합니다. 우리는 또한 위의 의사 코드에서 체인 작업 방법을 살펴보았습니다.

List Comprehension은 append() 함수를 허용하지 않지만 요소 자체를 추가합니다. 연결을 사용하여 여러 조건 이상을 배치할 수 있습니다.

print(["Positive" if i > 0 else "Negative" if i < 0 else "zero" for i in list])

출력:

['Positive', 'zero', 'Positive', 'Negative', 'Positive', 'zero', 'Negative']
Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn

관련 문장 - Python List