Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 컨테이너
- 그리드분할
- geopandas
- GCN
- 좌표거리
- osmnx
- GIS
- pyvista
- 이미지빌드
- 3d
- 파이썬
- MESH
- 데이터입수
- STL
- geojson
- 동명이인찾기
- GNN
- 지하철역좌표
- 폴더조사
- graph
- Set
- Python
- 귀여운고래
- 도커 레이어
- 알고리즘
- python최단거리
- 3d데이터
- 패치분할
- 도커
- docker
Archives
- Today
- Total
이것저것 기록
[python] 조건부 표현식, 리스트 표현식, 축약 본문
if문이나 for문을 사용할 때, 보통은
for i in range(len(list)):
blah
이렇게 쓰는게 일반적(?)이라고 생각했었다.
그런데 석사 동기가 (그때 당시 내가 느끼기엔) 매우 특이한 방식으로 조건명령어를 사용하는 것을 보고 상당히 신선한 충격을 받았었다.
그 특이한 방식이란 조건부 표현식이었다.
표현식이라는 것은 수학에서의 '수식'과 거의 같은 의미로 사용되는데, 이 표현식에서 가장 중요한 특징은 '평가된다'는 것이다.
표현식을 사용한 문법에는 몇가지 종류가 있다. (출처: soooprmx.com/archives/8771#more-8771)
-
리스트 축약 및 필터
-
[ 표현식1 for 변수 in 반복가능 if 표현식2]
-
'반복가능' 객체의 매 원소로부터 '표현식2'가 참일 때만 '표현식1'의 값으로 구성되는 새 리스트를 만든다.
-
-
2중 리스트 축약
-
[ 표현식(x, y) for x in 반복1 for y in 반복2 ]
-
반복1, 반복2에 대해서 변수 x, y의 각각의 조합쌍으로부터 표현식의 결과를 리스트로 만든다
-
-
사전 축약
-
{ 표현식1:표현식2 for 변수 in 반복가능 if 표현식2 }
-
표현식1:표현식2를 키:값 쌍으로 하는 사전을 만든다. 이때 표현식 3으로 필터링 한다.
-
예제
1. 리스트 축약 및 필터
numbers = [2, 4, 5, 6, 1, 12, 14, 51, 53, 48, 20]
even = [i for i in numbers if i%2==0]
# result: even = [2, 4, 6, 12, 14, 48, 20]
2. 2중 리스트 축약
numbers1 = [2, 4, 5, 6, 1, 12, 14, 51, 53, 48, 20, 20, 40, 1]
numbers2 = [2, 40, 34, 1]
same = [x + y for x in numbers1 for y in numbers2 if x==y]
# result: same = [4, 2, 80, 2]
3. 사전 축약
dd = {i: i * i for i in range(9) if i % 2 == 0} # only even
d = {i: i * i for i in range(9)}
'코린이 > 코딩 기초 & 알고리즘 공부' 카테고리의 다른 글
[python] 파이썬 클래스, 생성자 이해하기 (0) | 2020.11.02 |
---|---|
[python] argparse 사용하기 (0) | 2020.10.26 |
[python] 람다(lamda) 함수 (익명함수) (0) | 2020.10.19 |
[python] shutil 모듈로 파일 복사 및 이동하기 (0) | 2020.10.19 |
[python] datetime 모듈로 시간 처리 및 계산하기 (0) | 2020.10.17 |
Comments