파이썬 - 목록 이해
목록 이해
목록 이해는 기존 목록의 값을 기반으로 새 목록을 만들려는 경우 더 짧은 구문을 제공합니다.
예시:
과일 목록을 기반으로 이름에 문자 "a"가 있는 과일만 포함하는 새 목록이 필요합니다.
목록 이해가 없으면 for
내부에 조건부 테스트가 포함된 명령문을 작성해야 합니다.
예시
fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = []
for x in fruits:
if "a" in x:
newlist.append(x)
print(newlist)
목록 이해를 사용하면 단 한 줄의 코드로 이 모든 작업을 수행할 수 있습니다.
예시
fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = [x
for x in fruits if "a" in x]
print(newlist)
구문
newlist = [expression for item in iterable if condition == True]
반환 값은 새 목록이며 이전 목록은 변경되지 않습니다.
질환
조건 은 로 평가하는 항목만 허용하는 필터와 같습니다
True
.
예시
"사과"가 아닌 항목만 수락:
newlist = [x for x in fruits if x != "apple"]
조건
if x != "apple"True
"apple" 이외의 모든 요소에 대해
반환 하여 "apple"을 제외한 모든 과일을 포함하는 새 목록을 만듭니다.
조건 은 선택 사항이며 생략할 수 있습니다 .
예시
if
진술 없이 :
newlist = [x for x in fruits]
반복 가능
iterable 은 list, tuple, set 등과 같은 iterable 객체일 수 있습니다.
예시
range()
함수를 사용하여 iterable을 만들 수 있습니다 .
newlist = [x for x in range(10)]
같은 예이지만 조건이 있습니다.
예시
5보다 작은 숫자만 허용:
newlist = [x for x in range(10) if x < 5]
표현
표현식 은 반복 의 현재 항목이지만 새 목록의 목록 항목처럼 끝나기 전에 조작할 수 있는 결과이기도 합니다.
예시
새 목록의 값을 대문자로 설정합니다.
newlist = [x.upper()
for x in fruits]
결과를 원하는 대로 설정할 수 있습니다.
예시
새 목록의 모든 값을 'hello'로 설정합니다.
newlist = ['hello' for x in fruits]
표현식 은 필터가 아니라 결과를 조작하는 방법으로 조건을 포함할 수도 있습니다.
예시
"바나나" 대신 "오렌지" 반환:
newlist = [x if x != "banana" else "orange"
for x in fruits]
위 예의 식은 다음과 같이 말합니다.
"바나나 아닌 경우 반품, 바나나인 경우 오렌지 반품"