list comprehension
관련내용
리스트는 요소들에 인덱스가 부여되고 인덱스를 사용하여 각 요소를 호출할 수 있는 객체로 시퀀스(sequence)이며 이터러블(iterable)입니다. 그러므로 다음과 같이 반복문을 적용할 수 있습니다.
x=['a', 1, 9, 2, 'computer', '?', 'python'] for i in x: print(i, end=", ")
a, 1, 9, 2, computer, ?, python,
위와 같이 반복문에 소속된 하위문이 단순할 경우 식 1과 같이 한 줄에 반복문을 작성할 수 있습니다. 이 구문을 list comprehension라고 합니다. 이 구문은 반복을 위해 for 문을 사용하는데 하위문으로 조건문을 포함할 수 있으며 결과는 리스트 형으로 반환됩니다.
[result for 인식자 in 이터러블 (if 조건)] | (식 1) |
이터러블에 대해서는 article 시퀀스, 이터러블 & 이터레이터 참조
식 1에서 나타낸 것과 같이 list comprehension에서 조건문은 생략가능합니다. 이 구문은 대괄호내에 입력되므로 결과는 리스트입니다.
위의 객체 x에 대한 반복문을 list comprehension으로 다시 작성하면 다음과 같습니다.
[i for i in x]
['a', 1, 9, 2, 'computer', '?', 'python']
다음 코드는 객체 x에서 문자열인 요소들만 호출하기 위해 list comprehension을 적용한 것입니다.
[i for i in x if type(i) == str]
['a', 'computer', '?', 'python']
댓글
댓글 쓰기