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
- 이미지빌드
- pyvista
- 도커
- 3d데이터
- 폴더조사
- 동명이인찾기
- 파이썬
- Python
- 도커 레이어
- osmnx
- geojson
- GNN
- MESH
- GIS
- 좌표거리
- GCN
- 3d
- graph
- 지하철역좌표
- 알고리즘
- geopandas
- 귀여운고래
- Set
- 패치분할
- python최단거리
- docker
- 그리드분할
- 데이터입수
- 컨테이너
- STL
Archives
- Today
- Total
이것저것 기록
[python] exec()을 사용하여 동적 코드 실행하기 본문
파이썬에는 문자열 값을 변수 이름으로 변환할 수 있는 방법 중 exec()이 있다.
나는 이 내장함수를 변수명을 굳이 assign해서 값을 할당하기에는 한번 쓰고 버려질(?) 변수에 사용하는 편이다.
또한 변수 특정 조건을 만족하는 변수명이 생성되었을 때 동적으로 함수를 적용하고 싶을 때 사용한다.
사용법은 간단하다.
임의로 작성한 다음 코드를 살펴보자.
name_ls = ['Mat', 'David', 'Sam', 'Christina', 'Alex', 'Hiland', 'Maddy']
age_dict = {'Mat':10, 'David':15, 'Sam':16, 'Christina':20, 'Alex':17, 'Hiland':5, 'Maddy':9}
logic_age = """
age = age_dict[cur_name]
"""
adult_dict = dict()
for i in range(len(name_ls)):
cur_name = name_ls[i]
exec(logic_age)
if age > 19:
exec('adult_dict[cur_name]' + '=' + 'age')
name_ls에는 고객의 이름이 저장되어 있고, age_dict는 고객의 이름을 key, 나이를 value로 갖는 딕셔너리이다.
나는 name_ls를 돌면서 19살이 넘은 고객만 따로 추출하여 adult_dict()라는 딕셔너리에 이름:나이 를 저장해주려고 한다.
1. cur_name에는 i번째 고객이름이 들어온다.
2. logic_age를 동적 실행한다. (사실 굳이 동적 실행할 필요 없지만, 예시를 위해 굳이 이렇게 씀)
- logic_age = """ """" << 이렇게 문자열로 코드를 막 작성하고 이 변수를 exec( ) 안에 넣어 사용하면 된다.
- 여기서 logic_age를 통해 age라는 temporary 변수가 생성된 것이다.
3. age의 값이 19가 넘으면 다음 exec( ) 을 실행한다.
- exec( ) 사용시 주의해야 할 점은 string으로 넣어줘야한다는 점이다.
'코린이 > 코딩 기초 & 알고리즘 공부' 카테고리의 다른 글
[알고리즘] 최댓값, 최댓값 위치를 찾는 알고리즘 (0) | 2021.06.13 |
---|---|
[알고리즘] 계산 복잡도(시간 복잡도)란? (0) | 2021.06.13 |
[python] 파이썬 클래스, 생성자 이해하기 (0) | 2020.11.02 |
[python] argparse 사용하기 (0) | 2020.10.26 |
[python] 조건부 표현식, 리스트 표현식, 축약 (0) | 2020.10.26 |
Comments