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']
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