반응형
파이썬 예제들을 살펴 보면 한줄로 for문 if문을 사용해서 list를 만드는 것을 볼 수 있다.
효율적인 코딩을 위해 사용하는 방식으로 아래 파이썬 예제를 통해 이해해 보자.
아래 코드는 여러 리스트들 중에 가장 작은 숫자를 찾는 예제이다.
yValues0 = [6,13,8,7]
yValues1 = [9,6.5,40,6,12]
yValues2 = [8,7,3,1]
yUpperLimit = 30
yAll = [yValues0, yValues1, yValues2]
minY = min([y for yValues in yAll for y in yValues])
maxY = max([y for yValues in yAll for y in yValues if y < yUpperLimit])
print(minY)
print(maxY)
>>결과
1
13
>>해석
yAll = [yValues0, yValues1, yValues2] 는 리스트를 이중으로 채워 넣은 구조이다.
min([y for yValues in yAll for y in yValues]) 에서 우선 첫번째 for yValues in yAll 구문을 동작해서 yValues 가
두번째 for y in yValues 에 하나씩 들어가가고 각 리스트에서 값들이 y로 들어 간다. 그 y 값은 리스트 앞단에 변수로서 리스트를 채우게 된다.
[y for yValues in yAll for y in yValues] 는 결국 각 리스트 안의 값들을 하나의 리스트에 넣은 식이다.
[] 안에서 for 문이나 if 문은 순차적으로 적용 되고 (왼쪽에서 오른쪽 순) 조건식에 의해 list에 들어갈 값은 가장 왼쪽에 배치 된다.
반응형
'파이썬(Python) > 문법' 카테고리의 다른 글
enumerate, index값 불러오기 (0) | 2020.11.21 |
---|---|
선언 전 메모리절약, range, getsizeof (0) | 2020.11.20 |
yield, next 란 (0) | 2020.11.20 |
lambda, map 함수 (0) | 2020.11.18 |
파일 처리 - 읽기 모드 (0) | 2020.08.11 |